560. Subarray Sum Equals K
Given an array of integers
numsand an integerk, return the total number of subarrays whose sum equals tok.A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,1,1], k = 2
Output: 2Example 2:
Input: nums = [1,2,3], k = 3
Output: 2
def subarraySum(self, nums: List[int], k: int) -> int:
count, sum_so_far = 0, 0
sum_frequency = {0: 1}
for num in nums:
sum_so_far += num
if sum_so_far - k in sum_frequency:
count += sum_frequency[sum_so_far - k]
sum_frequency[sum_so_far] = sum_frequency.get(sum_so_far, 0) + 1
return count