需要连续的数字才行
题解:这里采用前缀和来解决这一题
注意第八行,这里判断的是前缀和 sum - k,如果存在sum - k的前缀和,此时又存在 sum的前缀和,那么相差的k肯定也存在
var subarraySum = function (nums, k) {
let hash = new Map()
hash.set(0, 1) // 前缀和为 0 的次数为 1
let sum = 0
let count = 0
for (let num of nums) {
sum += num
// 此处判断是前缀和 sum - k
if (hash.get(sum - k)) {
count += hash.get(sum - k)
}
hash.set(sum, (hash.get(sum) || 0) + 1)
}
return count
};