Skip to content

Commit 337c11d

Browse files
authored
Create 1590-make-sum-divisible-by-p.js
1 parent 83cab8d commit 337c11d

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

1590-make-sum-divisible-by-p.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} p
4+
* @return {number}
5+
*/
6+
const minSubarray = function(nums, p) {
7+
const diff = nums.reduce((a, b) => a + b, 0) % p;
8+
let res = diff === 0 ? 0 : nums.length;
9+
10+
for (let i = 0, sum = 0, map = {0: -1}; i < nums.length; i++) {
11+
sum += nums[i];
12+
const target = (sum % p - diff + p) % p;
13+
if (map[target] !== undefined) {
14+
res = Math.min(res, i - map[target]);
15+
}
16+
map[sum % p] = i;
17+
}
18+
19+
return res === nums.length ? -1 : res;
20+
};

0 commit comments

Comments
 (0)