InterviewHubPRO
Section Overview
Q11

Question 11 of 100

Part 2: Arrays, Strings & Hash Maps (6 - 18)

11%
DSA Patterns (Multi-Lang)•Part 2: Arrays, Strings & Hash Maps (6 - 18)

Subarray Sum Equals K.

In Simple Words: Use prefix sums and a Hash Map storing frequency of prefix sums encountered so far. At each step, if currentPrefixSum - k is in the map, add its frequency to total count.

  • Time: $O(N)$ | Space: $O(N)$
Multi-Language Solutions
Switch tabs or choose All
def subarraySum(nums: list[int], k: int) -> int:
    prefix_counts = {0: 1}
    curr_sum = 0
    count = 0
    for n in nums:
        curr_sum += n
        if (curr_sum - k) in prefix_counts:
            count += prefix_counts[curr_sum - k]
        prefix_counts[curr_sum] = prefix_counts.get(curr_sum, 0) + 1
    return count