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;
}
相关推荐
努力努力再努力wz3 分钟前
【c++入门系列】:命名空间以及函数重载以及缺省参数详解
java·c语言·开发语言·c++·redis
哈哈哈哈哈哈哈哈哈...........5 分钟前
.gitignore使用指南
java
重生之成了二本看我逆天改命走向巅峰15 分钟前
Spring JDBC Template与事务管理:基于XML与注解的实战指南
xml·java·数据库·笔记·后端·spring·mybatis
八股文领域大手子15 分钟前
缓存过期时间之逻辑过期
java·spring·缓存
IYU_18 分钟前
常见中间件漏洞攻略-Tomcat篇
java·安全·web安全·网络安全·中间件·tomcat
web1478621072330 分钟前
VScode 开发 Springboot 程序
java·spring boot·后端
救救孩子把33 分钟前
图书管理系统系统-Java、SpringBoot、Vue和MySQL开发的图书馆管理系统
java·vue.js·spring boot·图书管理系统
Stark、40 分钟前
【MySQL数据库】索引(索引分类及数据结构:哈希、B+树;聚簇索引、非聚簇索引;索引覆盖、索引失效;最左前缀原则、索引设计原则、索引使用策略)
数据结构·数据库·后端·sql·mysql
代码代码快快显灵1 小时前
使用 Spring Security的一些常用功能
java·前端·spring·springsecurity
present--011 小时前
【leetcode题解】宽搜(BFS)
算法·leetcode·宽度优先