39 lines
1.2 KiB
Java
39 lines
1.2 KiB
Java
package All;
|
||
/**
|
||
* 题目: 3101. 交替子数组计数
|
||
* 描述:给你一个二进制数组nums 。
|
||
* 如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。
|
||
* 返回数组 nums 中交替子数组的数量。
|
||
|
||
示例 1:
|
||
输入: nums = [0,1,1,1]
|
||
输出: 5
|
||
解释:
|
||
以下子数组是交替子数组:[0] 、[1] 、[1] 、[1] 以及 [0,1] 。
|
||
|
||
* 链接:https://leetcode.cn/problems/count-alternating-subarrays/
|
||
*/
|
||
public class CountAlternatingSubarrays {
|
||
public long countAlternatingSubarrays(int[] nums) {
|
||
int prenum=nums[0],precnt=1;
|
||
long total=1;
|
||
for (int i = 1; i < nums.length; i++) {
|
||
if(prenum==nums[i]){
|
||
precnt=1;
|
||
}else {
|
||
precnt++;
|
||
}
|
||
prenum=nums[i];
|
||
total += precnt;
|
||
}
|
||
return total;
|
||
}
|
||
|
||
public static void main(String[] args) {
|
||
CountAlternatingSubarrays countAlternatingSubarrays = new CountAlternatingSubarrays();
|
||
int[] nums = new int[]{0,1,1,1};
|
||
long total=countAlternatingSubarrays.countAlternatingSubarrays(nums);
|
||
System.out.println(total);
|
||
}
|
||
}
|