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;
}
相关推荐
AIAdvocate9 分钟前
Pandas_数据结构详解
数据结构·python·pandas
jiao0000135 分钟前
数据结构——队列
c语言·数据结构·算法
kaneki_lh39 分钟前
数据结构 - 栈
数据结构
铁匠匠匠39 分钟前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
C-SDN花园GGbond40 分钟前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
迷迭所归处2 小时前
C++ —— 关于vector
开发语言·c++·算法
架构文摘JGWZ2 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
leon6252 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林2 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z3 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表