Poison

930. Binary Subarrays With Sum

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public int numSubarraysWithSum(int[] nums, int goal) {
int preSum = 0, count = 0;
Map<Integer, Integer> preSumToCountMap = new HashMap<>();
preSumToCountMap.put(0, 1);
for (int num : nums) {
preSum += num;
count += preSumToCountMap.getOrDefault(preSum - goal, 0);
preSumToCountMap.put(preSum, preSumToCountMap.getOrDefault(preSum, 0) + 1);
}

return count;
}
}
Reference

930. Binary Subarrays With Sum