?LeetCode刷題實(shí)戰(zhàn)330:按要求補(bǔ)齊數(shù)組
Given a sorted integer array nums and an integer n, add/patch elements to the array such that any number in the range [1, n] inclusive can be formed by the sum of some elements in the array.
Return the minimum number of patches required.
示例
示例 1:
輸入: nums = [1,3], n = 6
輸出: 1
解釋:
根據(jù) nums 里現(xiàn)有的組合 [1], [3], [1,3],可以得出 1, 3, 4。
現(xiàn)在如果我們將 2 添加到 nums 中, 組合變?yōu)? [1], [2], [3], [1,3], [2,3], [1,2,3]。
其和可以表示數(shù)字 1, 2, 3, 4, 5, 6,能夠覆蓋 [1, 6] 區(qū)間里所有的數(shù)。
所以我們最少需要添加一個(gè)數(shù)字。
示例 2:
輸入: nums = [1,5,10], n = 20
輸出: 2
解釋: 我們需要添加 [2, 4]。
示例 3:
輸入: nums = [1,2,2], n = 5
輸出: 0
解題
class Solution {
public int minPatches(int[] nums, int n) {
int i = 0, count = 0;
long range = 1;
while(range <= n) {
if(i < nums.length && nums[i] <= range) range += nums[i++];
else {
range += range;
count++;
}
}
return count;
}
}
LeetCode1-320題匯總,希望對(duì)你有點(diǎn)幫助!
LeetCode刷題實(shí)戰(zhàn)321:拼接最大數(shù)
LeetCode刷題實(shí)戰(zhàn)322:零錢(qián)兌換
LeetCode刷題實(shí)戰(zhàn)323:無(wú)向圖中連通分量的數(shù)目
LeetCode刷題實(shí)戰(zhàn)324:擺動(dòng)排序 II
LeetCode刷題實(shí)戰(zhàn)325:和等于 k 的最長(zhǎng)子數(shù)組長(zhǎng)度
