【LeetCode75】第五十题 无限集中的最小数字

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

这是我们在LeetCode75里遇到的第二道设计类题目,难度比上一次的设计题目要难上一些。

题目假设我们拥有一个从1开始的无限集。

设计的这个类有两个调用函数,一个让我们将无限集中最小的数移出并返回,另一个函数让我们再将一个不在无限集里的数添加会无限集里。

那么题目有给出条件,重新加回无限集的数不会大于100,并且调用次数的总和不会超过1000次。

那么我们可以直接拿一个数组来存放1000个数字来模拟无限集,因为就算1000次调用的都是移除最小值,那么1000个数字也是刚好够移除的。

不过这仅仅是理论可行,因为直接模拟的话,是会超时的。

我们可以逆向思考一下,我们不存放存在无限集的数字,我们存放被移出无限集的数字。

并且我们使用set来存放,这样每次移除最小数的时候,我们从1开始寻找set,如果数字不在set里,那么我们就把数字加入到set里来表示这个数被我们移除了。

添加回无限集的时候就更简单了,我们直接寻找要添加的数在不在我们的set里,如果在,我们就把set里的这个数字移除来表示添加回无限集里,因为set里存放的是被移出无限集的数,这样可能有点绕,大家结合着下面的代码再捋一捋。

代码:

class SmallestInfiniteSet {
public:unordered_set<int>jihe; //存放的实际上是被移出无限集的元素SmallestInfiniteSet() {}int popSmallest() {int i=1;while(jihe.find(i)!=jihe.end()){    //从1开始寻找没有被移出无限集的数,第一个找到的就是最小数i++;}jihe.insert(i); //找到之后插入set表示该数被移出无限集return i;}void addBack(int num) {//如果该数在set里,也就是被无限集移出了,那么我们再将其移出set表示重新加回无限集里if(jihe.find(num)!=jihe.end()){ jihe.erase(num);}}
};

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

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

相关文章

跨境电商产业链,服务商的“霸道”你见识过吗?(测评补单)

跨境电商行业的服务商众多&#xff0c;涉及到从前期培训和店铺注册准备到中期选品软件、营销服务、流量投放和支付等多个环节。然而&#xff0c;行业乱象也日益严重&#xff0c;出现了一些不良现象&#xff0c;如恶意竞争、高价要求、割韭菜等。 卖家在选择服务商时应谨慎&…

Matlab图像处理-最大类间方差阈值选择法(Otsu)

基本思想 最大类间方差阈值选择法又称为Otsu 算法&#xff0c;该算法是在灰度直方图的基础上用最小二乘法原理推导出来的&#xff0c;具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分&#xff0c;使两部分之间的方差取得最大值&#x…

win10/11安裝時 OOBE強制跳過登入Microsoft賬戶

Windows11官方正式版ISO&#xff0c;目前版本号为22621.963&#xff0c;微软维持每个月发布一次ISO的节奏。每周还会有一些补丁在线推送&#xff0c;目前更新到了22621.1105。同时&#xff0c;还有Beta和Dev通道推送预览版。Dev通道的更为激进还不稳定&#xff0c;目前版本号为…

安装SAPGUI 8.0

SAP_GUI_for_Windows_8.00_Comp.64\PRES1\GUI\Windows\Win64

苹果计划2024年AirPods引入新接口,后续升级体温测量、听力测试

据彭博社马克・古尔曼&#xff08;Mark Gurman&#xff09;报道&#xff0c;苹果公司计划在最早2024年为其旗舰无线耳机AirPods和AirPods Max引入USB-C端口&#xff0c;并试图将其所有基于Lightning接口的配件改用USB-C接口。 据古尔曼表示&#xff0c;AirPods Pro将率先改用新…

Docker部署Springboot项目

Docker部署Springboot项目 在学习的若依的过程中&#xff0c;想尝试学习使用Docker实现SpringBoot项目的部署&#xff0c;于是实践如下&#xff1a; 项目打包完成后&#xff0c;放到服务器的目录结构如下&#xff1a; cd / mkdir ruoyidockerfile文件内容 笔者这里是配置读取…

微信小程序的开发---tabBar的介绍

目录 一、tabBar的介绍 二、tabBar的6个组成部分 三、tabBar节点的配置项 四、tab项的配置选项 五、tabBar的使用 一、tabBar的介绍 tabBar是移动端应用常见的页面效果&#xff0c;用于实现多页面的快速切换。小程序中通常将其分为&#xff1a; &#xff08;1&#xff09;…

企业架构LNMP学习笔记3

服务器基本环境配置&#xff1a; 1、安装虚拟机&#xff0c;centos7.9 操作系统&#xff1b; 2、网络配置&#xff1b; 3、机器名FQDN设置&#xff1b; 4、DNS解析设置&#xff0c;本地hosts设置&#xff1b; 5、配置yum源环境&#xff1b; 6、vim安装配置&#xff1b; …

大麦订单生成 大麦订单购票成功截图生成

后台一键生成链接&#xff0c;后台管理 教程&#xff1a;解压源码&#xff0c;修改数据库config/Congig 不会可以看源码里有教程 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

容器编排学习(一)k8s集群管理

一 Kubernetes 1 概述 就在Docker容器技术被炒得热火朝天之时&#xff0c;大家发现&#xff0c;如果想要将Docker应用于具体的业务实现&#xff0c;是存在困难的一一编排、管理和调度等各个方面&#xff0c;都不容易。于是&#xff0c;人们迫切需要一套管理系统&#xff0…

球谐函数实现环境光照漫反射实践

该文章以及代码主要来自 图形学论文解析与复现&#xff1a;【论文复现】An Efficient Representation for Irradiance Environment Maps 作者&#xff1a;Monica的小甜甜 与原文的不同&#xff1a; 对一些有问题的地方进行了修改添加了注释对有疑问的地方添加了疑问点引入了其…

【广州华锐互动】煤矿设备AR远程巡检系统实现对井下作业的远程监控和管理

煤矿井下作业环境复杂&#xff0c;安全隐患较多。传统的巡检方式存在诸多弊端&#xff0c;如巡检人员难以全面了解井下情况&#xff0c;巡检效率低下&#xff0c;安全隐患难以及时发现和整改等。为了解决这些问题&#xff0c;提高煤矿安全生产水平&#xff0c;越来越多的企业开…

win10系统配置vmware网络NAT模式

1&#xff0c;查看win10 IP地址&#xff1a;ipconfig 2, vmware设置&#xff1a;编辑>>虚拟网络编辑器>>点击添加网络&#xff08;选择NAT模式&#xff09; 3&#xff0c;虚拟机网络设置&#xff1a;点击VMware虚拟机>>设置>>网络适配器 4&#xff…

【autodl/linux配环境心得:conda/本地配cuda,cudnn及pytorch心得】-未完成

linux配环境心得&#xff1a;conda/本地配cuda&#xff0c;cudnn及pytorch心得 我们服务器遇到的大多数找不到包的问题一&#xff0c;服务器安装cuda和cudnn使用conda在线安装cuda和cudnn使用conda进行本地安装检查conda安装的cuda和cudnn本地直接安装cuda和cudnn方法一&#x…

【数据结构--顺序表】移除元素

题目描述&#xff1a; 代码实现&#xff1a; 1、指针实现 int removeElement(int* nums, int numsSize, int val) {int* dst nums, * src nums;int n1 0,n20;while (n1n2 < numsSize){if (*src ! val){*dst *src;dst;src;n1;//表示src走的步数}else{src;n2;//表示src走…

Matlab图像处理-迭代式阈值选择法

基本思想 迭代式阈值选择法的基本思想是&#xff1a;开始时&#xff0c;选择一个阈值作为初始估计值&#xff0c;然后按某种策略不断地改进这一估计值&#xff0c;直到满足给定的准则为止。在迭代过程中&#xff0c;关键之处在于选择什么样的阈值改进策略。好的阈值改进策略应…

游戏平台加盟该怎么做?需要准备什么?

游戏平台加盟是一种合作模式&#xff0c;允许个人或企业以加盟商的身份参与游戏平台&#xff0c;并从中获得一定的权益和收益。以下是一些步骤和需要准备的事项&#xff0c;来考虑如何进行游戏平台加盟&#xff1a; 步骤&#xff1a; 研究市场和平台&#xff1a;了解游戏市场和…

【AIGC】【图像生成】controlNet介绍(原理+使用)

文章目录 安装1、ControlNet&#xff1a;AI绘画1.1、ControlNet的本质是文生图(txt2img)2.2、预处理器 & 模型选择1.3、参数配置 2、ControlNet 模型分类2.1、草图类(6个)2.2、高级特征类(3个)3.3、高级类(5个) 3、配置参数4、基本原理&#xff1a;可控的SD模型5.可视化效果…

嵌入式IDE(2):KEIL中SCF分散加载链接文件详解和实例分析

在上一篇文章IAR中ICF链接文件详解和实例分析中&#xff0c;我通过I.MX RT1170的SDK中的内存映射关系&#xff0c;分析了IAR中的ICF链接文件的语法。对于MCU编程所使用的IDE来说&#xff0c;IAR和Keil用得比较多&#xff0c;所以这一篇文章就来分析一下Keil的分散文件.scf(scat…

flink的物理DataFlow图及Slot处理槽任务分配

背景 在flink中&#xff0c;有几个比较重要的概念&#xff0c;逻辑DataFlow图&#xff0c;物理DataFlow图以及处理槽执行任务&#xff0c;本文就来讲解下这几个概念 概念详解 假设有以下代码&#xff1a;数据源和统计单词算子的并行度是2&#xff0c;数据汇算子的并行度是1&…