Optimal Algorithmic Approach
Prefix sum + HashMap: running sum enables O(1) lookup of the complement prefix sum.
Core Invariants & Edge Cases
- prefixSum[j] - prefixSum[i] = k → prefixSum[i] = prefixSum[j] - k
- Use a HashMap to store counts of each prefix sum seen so far
- For every new prefix sum, look up (prefixSum - k) in the map