Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.
Example 1:
Input:nums = [1,1,1], k = 2 Output: 2
Note:
- The length of the array is in range [1, 20,000].
- The range of numbers in the array is [-1000, 1000] and the range of the integer k is [-1e7, 1e7].
1 class Solution(object): 2 def subarraySum(self, nums, k): 3 """ 4 :type nums: List[int] 5 :type k: int 6 :rtype: int 7 """ 8 sums = {0:1} 9 s = 0 10 cnt = 0 11 for i in nums: 12 s += i 13 if sums.get(s-k) != None: 14 cnt += sums[s-k] 15 if sums.get(s) == None: 16 sums[s] = 1 17 else: 18 sums[s] += 1 19 return cnt