力扣:3101. 交替子数组计数

3101. 交替子数组计数

给你一个二进制数组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
java 复制代码
class Solution {
    public long countAlternatingSubarrays(int[] nums) {
        long  ans = 1;
        for(int end = 1,start = 0;end <nums.length;end++){
            if(nums[end] == nums[end -1]){
                start = end;
            }
            //如果一个数组为交替
            ans += end - start + 1; //end-start+1计算的是start到end的子数组数量,但是单个只包含end
        }
        return ans;
    }
}
相关推荐
We་ct20 小时前
LeetCode 153. 旋转排序数组找最小值:二分最优思路
前端·算法·leetcode·typescript·二分·数组
享哥20 小时前
tick 数据探索笔记:从抓取到理解
算法
禹笑笑-AI食用指南20 小时前
本地脱敏:把数据安全控制在自己手里
算法·ai·脱敏
JosieBook20 小时前
【C#】C# 中的 enum、struct 和 class 对比总结
开发语言·算法·c#
拾荒的路由20 小时前
HOT100DAY9记录用
数据结构·算法·leetcode
沙雕不是雕又菜又爱玩20 小时前
leetcode第7题 整数反转(C++)
算法·leetcode
路小雨~20 小时前
机器学习基础算法学习笔记
学习·算法·机器学习
Tony沈哲20 小时前
OpenVitamin 整体架构设计—— 一个本地 AI 推理平台是如何构建的
算法·llm·agent
数据皮皮侠20 小时前
1095 《中国城市统计年鉴》面板数据整理
大数据·数据库·人工智能·算法·制造
寒月小酒21 小时前
3.26 OJ
数据结构·算法