Leet Code Daily 2024-06-22 - Count Number of Nice Subarrays
Solution
Preffix sum.
Code
class Solution {
public:
int numberOfSubarrays(vector<int>& nums, int k) {
vector<int> sums = {0};
unordered_map<int, int> cnt;
cnt[0]++;
int ans = 0;
for (const auto& num : nums) {
const int sum = sums.back() + (num % 2);
sums.push_back(sum);
if (sum - k >= 0) {
ans += cnt[sum - k];
}
cnt[sum]++;
}
return ans;
}
};