
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var subarraySum = function(nums, k) {
let map = new Map();
// We need to set 0 because 0 will be reached everytime since sum - k always becomes 0
map.set(0, 1);
let sum = 0;
let count = 0;
for(let num of nums) {
sum += num;
if(map.has(sum - k)) {
count += map.get(sum - k);
}
if(map.has(sum)) {
map.set(sum, map.get(sum) + 1);
} else {
map.set(sum, 1);
}
}
return count;
};