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

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

问题分析:该题让找出任何数字都可以组成n,且数组时排序的,我们假设前一个数字所能组成的数字范围是1,total,那么加上一个数numsk,则范围变为1,total并上nums\[k,numsk+total],如果numsk<total,则直接可以构成1,nums\[k+total]这个范围,则表示使用nums数组是连续的,不需要添加新的数字,如果不可以,表明numsk已经断开了连接,需要添加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;
}
相关推荐
蓝银草同学6 分钟前
Stream 实战:博客列表排序、过滤与分页(AI 辅助学习 Java 8)
java·前端·后端
2301_800895107 分钟前
信息安全数学基础复习
算法
爱折腾的小黑牛15 分钟前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw30 分钟前
题解:P17078 夏日甜点
c++·学习·算法·图论
某不知名網友33 分钟前
C/C++动态内存管理,智能指针及RAlI思想。
java·c语言·c++
海石1 小时前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
Tisfy1 小时前
LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数
算法·leetcode·深度优先··题解·连通图·全连通分量
海石2 小时前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode
沫离痕2 小时前
Cassandra 4.0.11 Docker 安装与配置手册
java·spring boot
plainGeekDev2 小时前
libs 目录 → Gradle 依赖管理
android·java·kotlin