https://leetcode.com/problems/binary-subarrays-with-sum/description/

class Solution {
public int numSubarraysWithSum(int[] nums, int goal) {
Map<Integer, Integer> map = new HashMap<>();
int sum = 0;
int answer = 0;
map.put(0, 1);
for(int n : nums) {
sum += n;
answer += map.getOrDefault(sum - goal, 0);
map.put(sum, map.getOrDefault(sum, 0) + 1);
}
return answer;
}
}