PU Subarray Sum Equals K

Jan 01, 1970

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].

Python Solution:

class Solution(object):
    def subarraySum(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: int
        """
        d = {0: 1}
        sum = 0
        res = 0
        for num in nums:
            sum += num
            res += d.get(sum - k, 0)
            d[sum] = d.get(sum, 0) + 1
        return res

Summary:

  • pre sum

LeetCode: 560. Subarray Sum Equals K