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);
|
|||
|
|
}
|
|||
|
|
}
|