LeetCode2336无限集中的最小数字

devtools/2024/9/23 4:38:44/

题目描述

  现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。实现 SmallestInfiniteSet 类:SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。int popSmallest() 移除 并返回该无限集中的最小整数。void addBack(int num) 如果正整数 num 不 存在于无限集中,则将一个 num 添加 到该无限集最后。

解析

  用一个数字表示前面最大的数字,然后用最小堆或者红黑树去记录后面的数字即可。

class SmallestInfiniteSet {private int frontMax;private TreeSet<Integer> backElements;public SmallestInfiniteSet() {this.backElements = new TreeSet<>();this.frontMax = 1;}public int popSmallest() {int res = 0;if(backElements.isEmpty()) {res = frontMax;frontMax ++;}else{int backMin = backElements.first();if(backMin < frontMax) {res = backMin;backElements.remove(backMin);}else {res = frontMax;frontMax ++;}}return res;}public void addBack(int num) {if(num >= frontMax) {return;}backElements.add(num);}}

在这里插入图片描述


http://www.ppmy.cn/devtools/44614.html

相关文章

使用Java和MyBatis获取表头与数据

使用Java和MyBatis获取表头与数据 在数据处理与展示中&#xff0c;经常需要将数据库查询结果中的表头&#xff08;列名&#xff09;与实际数据提取出来。本文将介绍如何通过Java的JDBC和MyBatis来实现这一需求。 1. 使用JDBC获取表头与数据 在JDBC中&#xff0c;可以使用Res…

leetcode70-Climbing Stairs

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1 阶 1 阶2 阶 分析 爬到顶层n…

CTF_RE典例

PZCTF Xor 分组异或 0&#xff0c;1&#xff0c;2&#xff0c;3 不变, 4 , 5 &#xff0c;6&#xff0c;7只异或Str[0], 8,9,10,11要先后异或Str[0],Str[1] s [0x50, 0x5a, 0x43, 0x54, 0x16, 0x2b, 0x11, 0xf, 0x3b, 0x63,0x7e, 0x7e, 0x78, 0x2c, 0x16, 0x3a, 0x71, 0x2e…

日志输出-第四章-接口级(单体应用)前后端数据加解密 Filter 实现

文章目录 日志输出-第四章-接口级&#xff08;单体应用&#xff09;前后端数据加解密 Filter 实现一、概述二、通过 Filter 的方式实现2.1、加解密工具类2.2、请求包装类2.3、响应包装类2.4、实现加解密2.5、效果展示 三、总结 日志输出-第四章-接口级&#xff08;单体应用&…

php正则中的i,m,s,x,e分别表示什么

正则表达式模式修饰符&#xff08;也称为标志或模式修饰符&#xff09;用于改变正则表达式的行为。这些修饰符可以附加在正则表达式的定界符之后&#xff0c;通常为正斜杠&#xff08;/&#xff09;或井号&#xff08;#&#xff09;&#xff0c;以改变搜索或替换的方式。 1、i…

debian11安装留档@VirtualBox

因为debian12无法安装tpot&#xff0c;所以又把11重新安装一遍&#xff0c;以前的安装文档&#xff1a;安装Debian 11 留档-CSDN博客 下载光盘 华为云地址&#xff1a;https://repo.huaweicloud.com/debian-cd/11.0.0/amd64/iso-cd/ 使用了debian11 教育版&#xff0c;比较有…

搜维尔科技:穿上Xsens Link动作捕捉套装,进行精准的运动捕捉

穿上Xsens Link动作捕捉套装&#xff0c;进行精准的运动捕捉 搜维尔科技&#xff1a;穿上Xsens Link动作捕捉套装&#xff0c;进行精准的运动捕捉

ABB 控制柜

1&#xff0c;主计算机&#xff1a;相当于电脑的主机&#xff0c;用于存放系统和数据&#xff0c;需要24V直流电才能工作。执行用户编写的程序&#xff0c;控制机器人进行响应的动作。主计算机有很多接口&#xff0c;比如与编程PC连接的服务网口、用于连接示教器的网口、连接轴…