当前位置:网站首页>力扣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;
}边栏推荐
- How to write a blog with Golang - Milu.blog development summary
- Dynamics 365Online PDF导出及打印
- 自定义过滤器和拦截器实现ThreadLocal线程封闭
- Leetcode刷题——623. 在二叉树中增加一行
- 朴素贝叶斯
- GCC编译的时候头文件搜索规则
- In-depth understanding of timeout settings for Istio traffic management
- 如何用Golang来手写一个Blog - Milu.blog 开发总结
- 脱光衣服待着就能减肥,当真有这好事?
- #yyds干货盘点#JS数组和树相互转化
猜你喜欢

软件测试之集成测试

数据可视化(一)

四、kubeadm单master

登录功能和退出功能(瑞吉外卖)

PostgreSQL 2022 Report: Rising popularity, open source, reliability and scaling key

#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介

Letter from Silicon Valley: Act fast, Facebook, Quora and other successful "artifacts"!

微信小程序标题栏封装

How to choose coins and determine the corresponding strategy research

负载均衡应用场景
随机推荐
PCB layout must know: teach you to correctly lay out the circuit board of the op amp
如何用Golang来手写一个Blog - Milu.blog 开发总结
化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
2022技能大赛训练题:交换机snmp配置
Integration testing of software testing
nyoj754 黑心医生 结构体优先队列
数据可视化(一)
提问题进不去。想问大家一个关于返回值的问题(图的遍历),求给小白解答啊
[Translation] Chaos Net + SkyWalking: Better observability for chaos engineering
张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来
PG优化篇--执行计划相关项
什么是 DevOps?看这一篇就够了!
例题 可达性统计+bitset的使用
今天告诉你界面控件DevExpress WinForms为何弃用经典视觉样式
【深度学习】mmclassification mmcls 实战多标签分类任务教程,分类任务
STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)
TiDB 6.0 Placement Rules In SQL 使用实践
大佬们 我是新手,我根据文档用flinksql 写个简单的用户访问量的count 但是执行一次就结束
TiDB 6.0 Placement Rules In SQL Usage Practice
Dynamics 365Online PDF导出及打印