LeetCode330. Patching Array【贪心】
来源:互联网 发布:大数据法律法规 编辑:程序博客网 时间:2024/05/09 19:38
题意
告诉你几个元素组成的数组nums[ ]和表示范围n,问最少向数组中添加多少元素使得从nums[ ]中若干元素之和能够覆盖[1..n]
思路
cur表示当前能表示的范围为[1..cur],扫描nums[ ],贪心原则如下:
若nums[i]<=2*cur + 1,把nums[i]添加进来,表示范围更新[1..cur+nums[i]];
若nums[i]>2*cur + 1,添加新的元素cur+1,表示范围更新[1..2*cur+1].
cur从0开始
注意
cur可能溢出
class Solution {public: int minPatches(vector<int>& nums, int n) { long long cur = 0; int i = 0,add = 0; while(cur<n){ if(i < nums.size()&&nums[i] <= cur + 1) { cur +=nums[i]; i ++ ; } else { add++; cur = 2*cur + 1; } } return add; }};
1 0
- LeetCode330. Patching Array【贪心】
- leetcode330:Patching Array(贪心)
- Leetcode330 - Patching Array(贪心)
- LeetCode330. Patching Array
- 330. Patching Array (贪心)
- leetcode 330 : Patching Array :贪心法
- 330. Patching Array-数组补丁|贪心算法
- Patching Array (第十周 贪心)
- [LeetCode] 贪心算法之 Patching Array
- Patching Array
- Patching Array
- Patching Array
- Patching Array
- leetcode 330. Patching Array-数组补丁|贪心算法
- leetcode Patching Array
- [LeetCode] Patching Array
- 330. Patching Array
- leetcode笔记:Patching Array
- 关于组态王的心酸:
- 艰难的开始
- win7 X64 安装Oracle VM VirtualBox后无法创建com对象问题(已解决)
- 几种访问谷歌的方法
- 学习字符串输入/输出(CPrimerPlus11.2&11.3)心得
- LeetCode330. Patching Array【贪心】
- 【转】Android开发的那些坑和小技巧
- unity2DStudyTip
- hdu4057 ac自动机+dp(我用的方法)
- HLS科普6 播放列表标签-基本标签
- PHP和JSON
- 使用MDC标注日志上下文
- Ansible的条件语句
- 网络---小文件的下载