Poison

1248. Count Number of Nice Subarrays

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int numberOfSubarrays(int[] nums, int k) {
int[] preArray = new int[nums.length + 1]; // 注意不要忘记多分配一个
preArray[0] = 1;

int sum = 0, res = 0;
for (int num : nums) {
sum += num & 1; // 前缀数组奇数的个数
if (sum >= k) {
res += preArray[sum - k];
}
preArray[sum]++;
}

return res;
}
}
Reference

1248. Count Number of Nice Subarrays