当前位置: 首页 > news >正文

3101. 交替子数组计数 Medium

给你一个

二进制数组

nums 。

如果一个

子数组

中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 

返回数组 nums 中交替子数组的数量。

示例 1:

输入: nums = [0,1,1,1]

输出: 5

解释:

以下子数组是交替子数组:[0] 、[1] 、[1] 、[1] 以及 [0,1] 。

示例 2:

输入: nums = [1,0,1,0]

输出: 10

解释:

数组的每个子数组都是交替子数组。可以统计在内的子数组共有 10 个。

提示:

 ·1 <= nums.length <= 105

 ·nums[i] 不是 0 就是 1 。

题目大意:计算数组中交替子数组的个数。

分析:设dp[i]表示以第i个元素结尾的交替子数组的个数。

(1)由于交替子数组必须是数组中连续的元素,因此当nums[i]!=nums[i-1]时,dp[i]=dp[i-1]+1,当nums[i]==nums[i-1]时,dp[i]=1;

(2)由(1)可知,dp[i]的计算只需要依据dp[i-1],因此可对dp数组降维,设dp表示以当前所遍历元素的上一个元素结尾的交替子数组的个数。

class Solution {
public:long long countAlternatingSubarrays(vector<int>& nums) {int N=nums.size();long long ans=1,dp=1;for(int i=1;i<N;++i){dp=1+(nums[i]==nums[i-1]? 0:dp);ans+=dp;}return ans;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • thinkadmin点击菜单跳转内容编辑页面(省略列表页)
  • qt qmake 和 cmake啥区别
  • npm,yarn清楚缓存
  • 【PYG】简单分析Planetoid()中存储Cora数据集边的数量
  • Arthas实战(5)- 项目性能调优
  • 专业课笔记——(第十二章:文件的读写)
  • ffmpeg使用bmp编码器把bgr24编码为bmp图像
  • 【Leetcode笔记】406.根据身高重建队列
  • [课程][原创]opencv图像在C#与C++之间交互传递
  • Python内置函数print()详解
  • 【python】PyQt5可视化开发,如何设计鼠标显示的形状?
  • 【k8s安装redis】k8s安装单机版redis实现高性能高可用
  • 从0开始学习pyspark--pyspark的数据读取[第4节]
  • 【linux/shell】awk获取除某列之外的其他数据
  • transformer初探
  • C++入门教程(10):for 语句
  • create-react-app做的留言板
  • crontab执行失败的多种原因
  • CSS 提示工具(Tooltip)
  • CSS中外联样式表代表的含义
  • If…else
  • javascript数组去重/查找/插入/删除
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React中的“虫洞”——Context
  • React组件设计模式(一)
  • Spring-boot 启动时碰到的错误
  • 编写符合Python风格的对象
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 给第三方使用接口的 URL 签名实现
  • 简单基于spring的redis配置(单机和集群模式)
  • 免费小说阅读小程序
  • 前端面试总结(at, md)
  • 实现简单的正则表达式引擎
  • 线性表及其算法(java实现)
  • 字符串匹配基础上
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • ## 基础知识
  • #pragam once 和 #ifndef 预编译头
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (九)信息融合方式简介
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)linux文件内容查看
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)winform之ListView
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .mysql secret在哪_MYSQL基本操作(上)