560. Subarray Sum Equals K
Medium
Given an array of integers
nums
and an integer k
, return the total number of subarrays whose sum equals to k
.A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,1,1], k = 2
Output: 2
Example 2:
Input: nums = [1,2,3], k = 3
Output: 2
Constraints:
1 <= nums.length <= 2 * 10^4
-1000 <= nums[i] <= 1000
-10^7 <= k <= 10^7
func subarraySum(nums []int, k int) int {
res, sum := 0, 0
n := len(nums)
m := make(map[int]int) //紀錄前綴和出現次數
m[0] = 1
for i := 0; i < n; i++ {
sum += nums[i]
res += m[sum - k]
m[sum]++
}
return res
}
Last modified 5mo ago