Continuous Subarray Sum LeetCode solution in JavaScript

1
var checkSubarraySum = function (nums, k) {
2
const n = nums.length;
3
if (n < 2) {
4
return false;
5
}
6
const map = new Map();
7

8
// edge case - to handle sum % k === 0 and
9
// if the first element of array is a multiple of k, condition 0 - (-1) = 1 > 1 wil fail (min length of subarray must be 2)
10
map.set(0, -1);
11
let sum = 0;
12

13
for (let i = 0; i < n; ++i) {
14
sum += nums[i];
15
sum = sum % k;
16

17
// handles min length of subarray must be 2
18
if (map.has(sum) && i - map.get(sum) > 1) {
19
return true;
20
} else if (!map.has(sum)) {
21
map.set(sum, i);
22
}
23
}
24
return false;
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0