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;
}
相关推荐
wuqingshun31415936 分钟前
蓝桥杯 10.拉马车
数据结构·c++·算法·职场和发展·蓝桥杯·深度优先
Java知识库40 分钟前
Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
java·开发语言·jvm·面试·程序员
西瓜本瓜@1 小时前
在 Android 中实现通话录音
android·java·开发语言·学习·github·android-studio
我不是小upper1 小时前
详解机器学习各算法的优缺点!!
人工智能·算法·机器学习
嘵奇1 小时前
基于Spring Boot实现文件秒传的完整方案
java·spring boot·后端
V功夫兔1 小时前
Spring_MVC 高级特性详解与实战应用
java·经验分享·笔记·spring
不是仙人的闲人1 小时前
算法之动态规划
数据结构·c++·算法·动态规划
小兵张健1 小时前
小米 JD 调研
java·后端·面试
purrrew2 小时前
【数据结构_10】二叉树(2)
数据结构
马院代表人2 小时前
IDEA内存配置失效(已解决)
java·ide·intellij-idea