Make Sum Divisible by P LeetCode solution in JavaScript
1var minSubarray = function (nums, p) {2let n = nums.length;3let map = new Map([[0, -1]]);4let total = 0,5res = n,6sum = 0;7for (let i = 0; i < n; i++) {8total += nums[i];9}10total = total % p;1112for (let i = 0; i < n; i++) {13sum = (sum + nums[i]) % p;14map.set(sum, i);15let prevSum = mod(sum - total, p);16if (map.has(prevSum)) {17res = Math.min(res, i - map.get(prevSum));18}19}2021return res == nums.length ? -1 : res;22};2324function mod(a, b) {25let c = a % b;26return c < 0 ? c + b : c;27}