当前位置:网站首页>力扣330 按要求补齐数组(贪心)
力扣330 按要求补齐数组(贪心)
2022-08-05 11:07:00 【这代码有点上头】
这道题主要用到了贪心的思想
设想一个情景,我用一堆数能够表示 [1,x-1]的范围的数
那么我将[1,x-1]范围内的数添加一个进来就能够表示x了
但是上面的并不是最优的,再想想,我们不如添加x吧
因为添加x之后,我能够表示数的范围增大了,增大至[1,2x-1]
而你将[1,x-1]范围内的数添加进来达不到这个效果
所以我们秉承这个思想
我们去遍历nums数组,如果该下标的数<=x 那么我们直接扩大x,表示可表示的范围增大了
如果该下标的数超过了x,我们应该怎么办呢?
没错就是将x加入数组,x->2*x
表示我们可表示的范围增加值2x-1
直到2x>这个数
这样才能保证我中间的数都能连续得被表示
代码附上:
int minPatches(vector<int>& nums, int n) {
int res=0;
long long x=1;
int index=0;
int len=nums.size();
while(x<=n){
if(index<len&&nums[index]<=x){
x+=nums[index];
index++;
}
else{
x<<=1;
res++;
}
}
return res;
}
边栏推荐
猜你喜欢
Android development with Kotlin programming language II Conditional control
智源社区AI周刊No.92:“计算复杂度”理论奠基人Juris Hartmanis逝世;美国AI学生九年涨2倍,大学教师短缺;2022智源大会观点报告发布[附下载]
How to choose coins and determine the corresponding strategy research
朴素贝叶斯
【深度学习】mmclassification mmcls 实战多标签分类任务教程,分类任务
解决2022Visual Studio中scanf返回值被忽略问题
012年通过修补_sss_提高扩散模型效率
365天挑战LeetCode1000题——Day 050 在二叉树中增加一行 二叉树
机器学习——逻辑回归
PG优化篇--执行计划相关项
随机推荐
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
软件测试之集成测试
负载均衡应用场景
Nature:猪死亡1小时后,器官再次运转
机器学习——集成学习
The host computer develops C# language: simulates the STC serial port assistant to receive the data sent by the microcontroller
Guys, I am a novice. I use flinksql to write a simple count of user visits according to the document, but it ends after executing it once.
MySQL 中 auto_increment 自动插入主键值
低代码平台开发有什么好处?
TiDB 6.0 Placement Rules In SQL 使用实践
问题征集丨ECCV 2022中国预讲会 · Panel专题研讨会
PG优化篇--执行计划相关项
R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的ROC曲线(precision(精准率),R代表的是recall(召回率)
Mathcad 15.0软件安装包下载及安装教程
#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介
Google启动通用图像嵌入挑战赛
Latex如何控制表格的宽度和高度
支持向量机SVM
提问题进不去。想问大家一个关于返回值的问题(图的遍历),求给小白解答啊
【深度学习】mmclassification mmcls 实战多标签分类任务教程,分类任务