js-practice/src/math/subarray-sum-equals-k.js
2020-05-15 19:25:33 +08:00

26 lines
470 B
JavaScript

/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
export const subarraySum = function (nums, k) {
const map = new Map()
let sum = 0
let res = 0
nums.forEach((n, index) => {
sum += n
if (sum === k) res++
const subSum = sum - k
let value = []
if (map.has(subSum)) res += map.get(subSum).length
if (map.has(sum)) {
value = map.get(sum)
}
value.push(index)
map.set(sum, value)
})
return res
}