LeetCode-周赛-思维训练-中等难度

第一题

1798. 你能构造出连续值的最大数目

在这里插入图片描述

解题思路

我们先抛开原题不看,可以先完成一道简单的题目,假设现在就给你一个目标值X,问你能够构造出从【1~X】的连续整数,最小需要几个数?

贪心假设期望:我们要尽量用最少的数目,构造出最长的连续数字。使用数组` x = [1]`,那么能构造出来的连续整数的范围就是`【1】` 
使用数组 `x = [1,2]`,那么能构造出来的连续整数的范围就是`【1~3】` 
使用数组 `x = [1,2,4]`,那么能构造出来的连续整数的范围就是`【1~7】` 使用数组`x = [1,2,3]`,那么只能构造出`【1~6】`。而同样是`3`个数,`x = [1,2,4]`,却能构造出`【1~7】`。所以在尽量少的数目前提下,选择:`[1,2,4]` 
使用数组 `x = [1,2,4,8]`,那么能构造出来的连续整数的范围就是`【1~15】`结论:如果有一些已经从小到大排序好的数`【a1,a2,a3...an】`,能够连续构造出来的整数范围是`【1~N】`,那么下一个能够造成的最大范围则为`【1~ (N + N +1)】`

在这里插入图片描述

根据结论,我们很容易给出代码实现

public int simple_minimumAdded(int target) {int ans = 0;int n = 0;while (n < target) {n = n + n + 1;ans++;}return ans;
}

现在,让我们回到原题中,虽然题目中给出的coins数组所包含的元素并不是按照最佳期望给的,但这并不影响整体的解题方式。

比如,题目中的示例2:`coins = [1,1,1,4]`,我们还是将数组分解拆开讨论当 `coins = [1]` 时,范围 `【1】`
当 `coins = [1,1]` 时,范围 `【1~2】`
当 `coins = [1,1,1] `时,范围 `【1~3】`
当 `coins = [1,1,1,4] `时,范围 `【1~7】`结论:如果有一些已经从小到大排序好的数`【a1,a2,a3...an】`,能够连续构造出来的整数范围是`【1~N】`,那么下一个能够造成的最大范围则为`【1 ~ (an + N)】`。但是这里还有一个前提,`an`如果大于`N+1`,则就无法构造连续整数了,且缺失的连续整数为`【N + 1 ~ an - 1】`

把4换成6,连续范围只能是【1~3】【6~9】45两个数字。
在这里插入图片描述

代码实现

根据这个结论,本题的代码实现如下:

class Solution {public int getMaximumConsecutive(int[] coins) {Arrays.sort(coins);int n = 0;for(int c : coins){if(c > n + 1){break;}n += c;}// 由于题目中0也算一个数,所以最后答案为: n + 1return n + 1;}
}

第二题

2952. 需要添加的硬币的最小数量

在这里插入图片描述

在有了前一题的基础上,再来做这一题,就简单了许多,本题可以看作当数组无法构造连续整数,且又未达到target时,你可以通过添加一些数字,使其满足要求,问你最少需要添加几次。

代码实现

class Solution {public int minimumAddedCoins(int[] coins, int target) {Arrays.sort(coins);long max = 0;int idx = 0;int ans = 0;while (max < target) {if (idx < coins.length && coins[idx] <= max + 1) {max += coins[idx];idx++;} else {max = max + max + 1;ans++;}}return ans;}
}

整个实现逻辑,实际上就是分别考虑了两种情况,一种是数组中的元素本身可以维持连续性,一种是数组中的元素本身无法维持连续性,需要补齐。而面对这两种情况下的处理方式实际上就是前一题中的解法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Path Finder for Mac:超越系统的文件管理利器

Path Finder for Mac是一款卓越的文件管理器&#xff0c;它不仅具备基本的文件浏览、打开、复制和移动等操作功能&#xff0c;还引入了一系列强大的特性&#xff0c;使得用户可以更高效地管理和处理文件。 一、强大的预览功能 Path Finder for Mac支持多种文件格式的预览&…

题目分析,高度理解一维二维数组的申请和[]是什么运算符

第0题: 动态申请二维数组并输出非负数和 和负数出现次数 思路:输入数组大小,然后申请内存并不对其初始化,提高速度,传入数据到申请的数组中,判断如果数组中有元素小于0对其进行计数,否则加上非0数最后输出答案,释放内存 第一题: 解答: 运行结果: 思路分析: 创建长度为20的…

RobotFramework编写用例,在Jenkins上如何实现用例的并发运行?

我们了解RobotFramework编写自动化测试用例的方法&#xff0c;了解如何将用例在Jenkins上运行。 但是&#xff0c;随着用例的增多&#xff0c;传统的pybot/robot命令运行测试用例会耗费大量的时间&#xff0c;这就慢慢成为了一个苦恼的问题。 那么&#xff0c;在Jenkins上如何…

JFrog Artifactory二进制文件管理工具部署使用

1.简介 JFrog Artifactory二进制文件管理工具&#xff0c;目前已经在使用的公司有很多&#xff0c;足见他的方便好用。 2.下载安装包 点击下载地址 这里我下载的是7.9.2版本 3. 安装 &#xff08;1&#xff09;在安装JFrog Artifactory之前需要安装好jdk&#xff08;需…

9_企业架构队列缓存中间件分布式Redis

企业架构队列缓存中间件分布式Redis 学习目标和内容 1、能够描述Redis作用及其业务适用场景 2、能够安装配置启动Redis 3、能够使用命令行客户端简单操作Redis 4、能够实现操作基本数据类型 5、能够理解描述Redis数据持久化机制 6、能够操作安装php的Redis扩展 7、能够操作实现…

AWS 日志分析工具

当您的网络资源托管在 AWS 中时&#xff0c;需要定期监控您的 AWS CloudTrail 日志、Amazon S3 服务器日志和 AWS ELB 日志等云日志&#xff0c;以降低任何潜在的安全风险、识别严重错误并确保满足所有合规性法规。 什么是 Amazon S3 Amazon Simple Storage Service&#xff…

苹果ios的系统app应用WebClip免签应用开源及方式原理

在移动设备上&#xff0c;为了方便访问我们经常使用的网站或服务&#xff0c;我们经常会希望将其添加到主屏幕上&#xff0c;以便快速启动。虽然我们可以通过使用浏览器书签实现这一目标&#xff0c;但添加一个图标到主屏幕上&#xff0c;使得它看起来与原生App无异&#xff0c…

为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模?

1.2为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.2节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学…

一个最新国内可用的免费GPT4,Midjourney绘画网站+使用教程

一、前言 ChatGPT GPT4.0&#xff0c;Midjourney绘画&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而&#xff0c;GPT-4对普…

MAC 系统在vs code中,如何实现自动换行

目录 问题描述&#xff1a; 问题解决&#xff1a; 问题描述&#xff1a; 在vscode中&#xff0c;有些时候&#xff0c;一行内容过多&#xff0c;如果不能自动换行&#xff0c;就需要拖动页面&#xff0c;才能看到完整的内容。如下图两行所示&#xff1a; 问题解决&#xff1a…

基于opencv和tensorflow实现人脸识别项目源码+可执行文件,采用python中的tkinter库做可视化

项目名称: 基于OpenCv和tensorflow的人脸识别 完整代码下载地址&#xff1a;基于OpenCv和tensorflow的人脸识别 环境配置: Pythontensorflow2OpenCv categories: 人工智能 description: Opencv是一个开源的的跨平台计算机视觉库&#xff0c;内部实现了图像处理和计算机视觉方…

2023 IoTDB 用户大会成功举办,深入洞察工业互联网数据价值

2023 年 12 月 3 日&#xff0c;中国通信学会作为指导单位&#xff0c;Apache IoTDB Community、清华大学软件学院、中国通信学会开源技术委员会联合主办&#xff0c;“科创中国”开源产业科技服务团和天谋科技&#xff08;北京&#xff09;有限公司承办的 2023 IoTDB 用户大会…

基于 Stereo R-CNN 的自动驾驶 3D 目标检测

论文地址&#xff1a;https://openaccess.thecvf.com/content_CVPR_2019/papers/Li_Stereo_R-CNN_Based_3D_Object_Detection_for_Autonomous_Driving_CVPR_2019_paper.pdf 论文代码&#xff1a;https://github.com/HKUST-Aerial-Robotics/Stereo-RCNN 论文背景 大多数 3D 物…

【开源】基于JAVA的APK检测管理系统

项目编号&#xff1a; S 038 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S038&#xff0c;文末获取源码。} 项目编号&#xff1a;S038&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软…

MA营销自动化如何助力商家实现精准营销?

惟客数据 MAP 是一个跨渠道和设备的自动化营销平台&#xff0c;允许接触点编排个性化旅程&#xff0c;通过短信、社交推送等方式为您的客户创建无缝的个性化体验&#xff0c;加强客户关系并赢得忠诚度。可与惟客数据CDP 产品无缝配合使用&#xff0c;通过数据驱动做出更实时&am…

【android开发-16】android中文件和sharedpreferences数据存储详解

1&#xff0c;文件读写方式的数据存储 下面是一个简单的示例&#xff0c;演示如何在Android中使用内部存储来保存和读取文件&#xff1a; 保存文件&#xff1a; try { String data "这是要保存的数据"; FileOutputStream fos openFileOutput("myFile"…

亚马逊云科技Serverless视频内容摘要提取方案

概述 随着GenAI的普及&#xff0c;视频内容摘要生成成为一个备受关注的领域。通过将视频内容转化为文本&#xff0c;可以探索到更广泛的应用场景&#xff0c;其中包括&#xff1a; 视频搜索与索引&#xff1a;将视频内容转化为文本形式&#xff0c;可以方便地进行搜索和索引操作…

MATLAB——二维小波的多层重构

%% 学习目标&#xff1a;二维小波的多层重构 %% 案例1 clear all; close all; load woman.mat; Xind2gray(X,map); [C,S]wavedec2(X,3,db4); %二维小波的多层分解 S C(1:38*38)0; %将小波的近似系数设置为0 Ywaverec2(C,S,db4); %二维小波的多层…

Docker+jenkins+gitlab实现持续集成

1.安装环境 服务器ip虚拟机版本192.168.5.132centos7.6192.168.5.152centos7.6 2. 安装docker 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息&#xff0c;要确保centos7能上外网 yum-config-manager --add-repo http:…

windows如何解决端口冲突(实用篇)

在项目设计中&#xff0c;环境配置成功点击运行瞬间&#xff0c;一大堆红爆出&#xff0c;8080端口占用&#xff0c;这个是很烦人的。。。 解决方式&#xff1a; 笨方法&#xff1a;一、查看所有端口实用情况&#xff08;挨个扫&#xff09; 按住【WINR】快捷键打开运行输入…