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;
}
相关推荐
左左右右左右摇晃8 小时前
Java并发——偏向锁
java
moxiaoran57538 小时前
使用springboot+flowable实现一个简单的订单审批工作流
java·spring boot·后端
少许极端8 小时前
算法奇妙屋(三十四)-贪心算法学习之路 1
学习·算法·贪心算法
牧天白衣.8 小时前
07-常用API
java
Meepo_haha8 小时前
Tomcat闪退问题以及解决原因(三种闪退原因有解决办法)
java·tomcat·firefox
兑生8 小时前
【灵神题单·贪心】3010. 将数组分成最小总代价的子数组 I | Java
java·开发语言·算法
Wave8458 小时前
数据结构—栈与队列
数据结构
小堃学编程8 小时前
【项目实战】基于protobuf的发布订阅式消息队列(1)—— 准备工作
java·大数据·开发语言
垫脚摸太阳8 小时前
二分查找经典算法题--数的范围
数据结构·算法
噜啦噜啦嘞好8 小时前
算法篇:二分查找
数据结构·c++·算法·leetcode