330. 按要求补齐数组

简介: 330. 按要求补齐数组

@TOC


前言

给定一个已排序的正整数数组 nums ,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。

请返回 满足上述要求的最少需要补充的数字个数 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/patching-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

先给数组排序
range代表已经凑出来的数
如果range+1<arr[i],证明还缺数
那么我们只需在range的基础上加一个range+1,直到凑出arr[i]

如果已经凑出arr[i],则在range上加上arr[i]

如果已经遍历完arr,还没有凑出aim,
则不断在range的基础上加range+1,直到凑出aim

代码

class Solution {
    public int minPatches(int[] arr, int aim) {
        int ans=0;
        long range=0;
        Arrays.sort(arr);
        for(int i=0;i<arr.length;i++){
            //要求没被满足
            while(arr[i]-1>range){
                range+=range+1;
                ans++;
                if(range>=aim){
                    return ans;
                }
            }
            range+=arr[i];
            if(range>=aim){
                return ans;
            }
        }
        while(range+1<=aim){
            range+=range+1;
            ans++;
        }
        return ans;
    }
}
相关文章
|
Shell Python
miniconda使用体验
## 简介 miniconda是什么呢? 这里简单用一个公式来说明 miniconda = virtualenv + pyenv + pypi源 通过miniconda可以实现创建隔离的python包环境,下载特定的python包版本,使用conda源上编译好的whl包。可以说一应俱全。 ## 安装 miniconda在Mac可以直接用Brew安装,一行命令 `brew install mini
1369 0
|
存储 负载均衡 NoSQL
MongoDB·最佳实践·count不准原因分析
背景 一般来说,除了由于secondary延迟可能造成查询secondary节点数据不准以外,关于count的准确性问题,在MongoDB4.0官方文档中有这么一段话On a sharded cluster, db.
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,&quot;死叉&quot;指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而&quot;金叉&quot;则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
295 2
|
Kubernetes API Docker
kubernetes Operator 【2】实战CRD编程
kubernetes Operator 【2】实战CRD编程
kubernetes Operator 【2】实战CRD编程
websphere7.0异常:SRVE0255E: 尚未定义要处理 /wcm 的 Web 组/虚拟主机
websphere7.0异常:SRVE0255E: 尚未定义要处理 /wcm 的 Web 组/虚拟主机
1380 0
|
Kubernetes Cloud Native 容灾
阿里云新版ACE全球通关第一人考试经历回顾
2022.3月底阿里云针对老版ACE进行了改版,针对云计算技术的发展趋势,新增了云原生等热门技术,同时新版ACE认证新增了实验和面试,全面考查考生的动手能力和理论知识结构,含金量大大提升。本人于2022.7.25号通过新版ACE实验,并于8.22号参加并通过了新版ACE第一场面试考试,有幸成为新版ACE全球通关第一人。现在本人备考学习新版ACE认证的过程记录成文,跟大家分享,期待越来越多的云计算技术爱好者学习和报考新版ACE,拿到属于自己的全球编号。
3713 19
阿里云新版ACE全球通关第一人考试经历回顾
|
存储 测试技术 异构计算
HDL-Bits 刷题记录 01
HDL-Bits 刷题记录 01
695 0
HDL-Bits 刷题记录 01
|
存储 机器学习/深度学习 SQL
如何三步搭建一套声纹系统
声纹检索,顾名思义就是说话人识别,通过声音来验证或者识别说话人的声音。声纹识别的关键步骤就是声音向量化,将说话人的声音将其转化成结构化的向量。阿里云AnalyticDB向量版,提供了一套声纹验证检索的解决方案。用户只需要使用简单的几条SQL命令,三步之内就可以搭建一套高精度的声纹检索验证服务。
2600 0
如何三步搭建一套声纹系统
|
人工智能 运维 监控
新发布:免费的防疫数据分析与可视化平台---阿里云新冠病毒疫情分析App
免费的防疫数据分析与可视化平台能力---阿里云新冠病毒疫情分析App 新冠病毒疫情分析App是基于阿里云日志服务中台,提供的一站式的数据处理可视化分析系统。借助它,可以在全球范围内了解各省份、市区的全面一手疫情信息和防疫新闻动态。目前该能力全面开放给政府、社区、第三方平台和开放者进行广泛应用。
4874 0
|
人工智能 自动驾驶 大数据
华为计算战略揭晓:开放鲲鹏主板,推出开发套件,发布系列最强算力AI计算产品
华为在 HC 大会上发布的「全球最快 AI 训练集群」Atlas 900 引起了人们广泛关注。这仅仅是华为智能计算在全联接大会上新产品发布的开始,华为昨天推出的鲲鹏服务器主板、鲲鹏台式机主板,以及全球最强 AI 训练卡 Atlas 300、AI 训练服务器 Atlas 800 等产品,让我们再次见证了这家公司的研发实力。
947 0
华为计算战略揭晓:开放鲲鹏主板,推出开发套件,发布系列最强算力AI计算产品