LeetCode 330. 按要求补齐数组(贪心)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 330. 按要求补齐数组(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定一個已排序的正整數數組 nums,和一個正整數 n 。
從 [1, n] 區間內選取任意個數字補充到 nums 中,使得 [1, n] 區間內的任何數字都可以用 nums 中某幾個數字的和來表示。請輸出滿足上述要求的最少需要補充的數字個數。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/patching-array
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int minPatches(vector<int>& nums, int n) {int i = 0, len = nums.size(), ans = 0;// [1, v) 區間 加上 v 就可以表示 [1, 2v), 右端點用 v 來表示// [1, v) 區間 加上 k 就可以表示 [1, v+k), 右端點用 v 來表示long long v = 1;while(v <= n){if(i < len && nums[i] <= v)v += nums[i++];else// v < nums[i] , 右端點夠不著 nums[i],需要添加一個 v,區間變為[1,2v){v += v;ans++;}}return ans;} };16 ms 11.5 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 330. 按要求补齐数组(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sklearn 机器学习 Pipelin
- 下一篇: LeetCode 1577. 数的平方等