Algorithm/src/main/java/All/CountAlternatingSubarrays.java
2025-09-27 12:25:49 +08:00

39 lines
1.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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