Make Sum Divisible by P LeetCode solution in JavaScript

1
var minSubarray = function (nums, p) {
2
let n = nums.length;
3
let map = new Map([[0, -1]]);
4
let total = 0,
5
res = n,
6
sum = 0;
7
for (let i = 0; i < n; i++) {
8
total += nums[i];
9
}
10
total = total % p;
11

12
for (let i = 0; i < n; i++) {
13
sum = (sum + nums[i]) % p;
14
map.set(sum, i);
15
let prevSum = mod(sum - total, p);
16
if (map.has(prevSum)) {
17
res = Math.min(res, i - map.get(prevSum));
18
}
19
}
20

21
return res == nums.length ? -1 : res;
22
};
23

24
function mod(a, b) {
25
let c = a % b;
26
return c < 0 ? c + b : c;
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0