Track prefix sums in a hash map. Count occurrences of prefixSum - k.
function subarraySum(nums, k): count = 0 prefixSum = 0 sumCount = {0: 1} for num in nums: prefixSum += num if prefixSum - k in sumCount: count += sumCount[prefixSum - k] sumCount[prefixSum] = sumCount.get(prefixSum, 0) + 1 return count
time, space.