Binary Subarrays With Sum

MediumArrayHash TableSliding WindowPrefix Sum

Solution

export function numSubarraysWithSum(nums: number[], goal: number): number {
  const counter = new Map<number, number>([[0, 1]]);
  let answer = 0;
  let sum = 0;
  for (const num of nums) {
    sum += num;
    answer += counter.get(sum - goal) ?? 0;
    counter.set(sum, (counter.get(sum) ?? 0) + 1);
  }
  return answer;
}