Files
leetcode/work/Medium/Array/560.subarray-sum-equals-k.js
T

60 lines
1.1 KiB
JavaScript

/*
* 560. Subarray Sum Equals K
* Difficulty: Medium
* https://leetcode.com/problems/subarray-sum-equals-k/
*
* ──────────────────────────────────────────────────
*
* 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
*/
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var subarraySum = function(nums, k) {
const map = new Map();
map.set(0, 1);
let sum = 0;
let count = 0;
for (let n of nums){
sum += n;
if(map.has(sum - k)){
count += map.get(sum - k);
}
map.set(sum, (map.get(sum) || 0) + 1);
}
return count
};