Skip to main content

330.js

/** ------------------------------------------------------------------------------
*
* 330. Patching Arrau
* https://leetcode.com/problems/patching-array/
*
------------------------------------------------------------------------------ */
var minPatches = function (nums, n) {
let miss = 1 // JavaScript uses let for block scope variables
let result = 0
let i = 0

while (miss <= n) {
if (i < nums.length && nums[i] <= miss) {
miss += nums[i]
i++
} else {
miss += miss
result++
}
}

return result
}

function minPatches(nums, n) {
let patches = 0
let sum = 0
let i = 0

while (sum < n) {
if (i < nums.length && nums[i] <= sum + 1) {
sum += nums[i]
i++
} else {
sum += sum + 1
patches++
}
}
return patches
}