力扣: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;
    }
}
相关推荐
样例过了就是过了4 小时前
LeetCode热题100 子集
数据结构·c++·算法·leetcode·dfs
I_LPL4 小时前
day52 代码随想录算法训练营 图论专题5
java·算法·图论·并查集
jing-ya4 小时前
day 49 图论part1
算法·深度优先·图论
想吃火锅10055 小时前
【leetcode】98.验证二叉搜索树
算法·leetcode·职场和发展
一叶落4385 小时前
【LeetCode 172】阶乘后的零(C语言详解 | 数学规律 + 对数时间复杂度)
c语言·数据结构·算法·leetcode·动态规划
自信150413057595 小时前
数据结构初阶——二叉树之——堆的实现
c语言·数据结构·算法
Barkamin5 小时前
(有头)链表的实现(Java)
java·数据结构·链表
!停5 小时前
数据结构算法—归并排序
数据结构·算法
骇客野人5 小时前
机器学习线性回归算法是入门机器学习理解人工智能模型很好示例
人工智能·算法·机器学习
Trouvaille ~5 小时前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯