Prefix Sum & Difference · Medium

Subarray Sum Equals K

O(N) · O(N)

Step 1: Setup & Initialization - Subarray Sum Equals K

Maintain running prefix sum and query frequency of (prefix - k).

Array Elements & Pointers
10
[0]
20
[1]
30
[2]
40
[3]
50
[4]
Live Variables & Invariants
status:Initialized
pattern:Subarray Sum Equals K
Step 1 / 3
33%
Solution Code
1
function subarraySum(nums: number[], k: number): number {
2
  const map = new Map<number, number>(); map.set(0, 1);
3
  let sum = 0, count = 0;
4
  for (const n of nums) {
5
    sum += n;
6
    if (map.has(sum - k)) count += map.get(sum - k)!;
7
    map.set(sum, (map.get(sum) || 0) + 1);
8
  }
9
  return count;
10
}
LeetCode IDE Console

Test Cases

3 cases from Blind 75 & NeetCode 150

Ask for a hint whenever you get stuck.