62 贪心算法按要求补齐数组

给定一个已经排序的正整数数组nums,和一个正整数n,从[1,n]取件中选取任意个数字到nums中,使得[1,n]区间内的任何数字都可以用nums中某几个数字的来表示,请输出满足上述条件的最少需要补充的数字个数。

问题分析:该题让找出任何数字都可以组成n,且数组时排序的,我们假设前一个数字所能组成的数字范围是[1,total],那么加上一个数nums[k],则范围变为[1,total]并上[nums[k],nums[k+total]],如果nums[k]<total,则直接可以构成[1,nums[k]+total]这个范围,则表示使用nums数组是连续的,不需要添加新的数字,如果不可以,表明nums[k]已经断开了连接,需要添加total+1这个数字,使得范围变为[1,2*toal+1];

java 复制代码
public int complement(int []nums,int n)
{
int count=0;
int total=0;
int k=0;
while(total<n)
{
if(total+1=>nums[k])
{
total=nums[k]+total;
}else
{
total+=total+1;
count++;
}
k++;
}
​​​​​​​return count;
}
相关推荐
松涛和鸣17 小时前
25、数据结构:树与二叉树的概念、特性及递归实现
linux·开发语言·网络·数据结构·算法
莫物17 小时前
Java后端请求不同环境下的同一接口,有的环境会出现乱码问题
java·开发语言
Han.miracle17 小时前
数据结构--初始数据结构
算法·集合·大o表示法
List<String> error_P17 小时前
C语言联合体:内存共享的妙用
算法·联合体
吃炒鸡蛋17 小时前
反射更新字段
java·服务器·前端
little~钰17 小时前
可持久化线段树和标记永久化
算法
Pacify_The_North17 小时前
【C++11(二)】可变参数模板和 lambda表达式
java·开发语言·c++
是梦终空17 小时前
计算机毕业设计248—基于Java+Springboot+vue的博物馆预约系统(源代码+数据库+开发文档)
java·spring boot·vue·毕业设计·jwt·博物馆预约系统·博物馆网站
Tao____18 小时前
支持mqtt、tcp、udp、websocket、http协议的物联网平台
java·物联网·mqtt·websocket·tcp/ip·udp
獭.獭.18 小时前
C++ -- 二叉搜索树
数据结构·c++·算法·二叉搜索树