当前位置:网站首页>LeetCode 2336. 无限集中的最小数字(SortedSet)
LeetCode 2336. 无限集中的最小数字(SortedSet)
2022-08-02 17:48:00 【Michael阿明】
1. 题目
现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。
实现 SmallestInfiniteSet 类:
SmallestInfiniteSet()初始化SmallestInfiniteSet对象以包含 所有 正整数。int popSmallest()移除 并返回该无限集中的最小整数。void addBack(int num)如果正整数 num 不 存在于无限集中,则将一个 num 添加 到该无限集中。
示例:
输入
["SmallestInfiniteSet", "addBack", "popSmallest", "popSmallest", "popSmallest", "addBack", "popSmallest", "popSmallest", "popSmallest"]
[[], [2], [], [], [], [1], [], [], []]
输出
[null, null, 1, 2, 3, null, 1, 4, 5]
解释
SmallestInfiniteSet smallestInfiniteSet = new SmallestInfiniteSet();
smallestInfiniteSet.addBack(2); // 2 已经在集合中,所以不做任何变更。
smallestInfiniteSet.popSmallest(); // 返回 1 ,因为 1 是最小的整数,并将其从集合中移除。
smallestInfiniteSet.popSmallest(); // 返回 2 ,并将其从集合中移除。
smallestInfiniteSet.popSmallest(); // 返回 3 ,并将其从集合中移除。
smallestInfiniteSet.addBack(1); // 将 1 添加到该集合中。
smallestInfiniteSet.popSmallest(); // 返回 1 ,因为 1 在上一步中被添加到集合中,
// 且 1 是最小的整数,并将其从集合中移除。
smallestInfiniteSet.popSmallest(); // 返回 4 ,并将其从集合中移除。
smallestInfiniteSet.popSmallest(); // 返回 5 ,并将其从集合中移除。
提示:
1 <= num <= 1000
最多调用 popSmallest 和 addBack 方法 共计 1000 次
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/smallest-number-in-infinite-set
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 使用有序set,插入数据后会自动排序
from sortedcontainers import SortedSet
class SmallestInfiniteSet:
def __init__(self):
self.s = SortedSet(range(1, 1001))
def popSmallest(self) -> int:
return self.s.pop(0)
def addBack(self, num: int) -> None:
self.s.add(num)
232 ms 16.3 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
边栏推荐
- 记一次 .NET 某工控自动化控制系统 卡死分析
- 搭建属于自己的知识库(Wikijs)
- 每日优鲜倒了,叮咚买菜的春天在哪?
- LiveGBS国标GB/T28181流媒体平台支持主子码流切换主码流stream/streamprofile
- 54.【system系统互动函数大总结】
- 租房小程序自动定位城市
- Dream weaving prompt information prompt box beautification
- 危及安全的常见物联网攻击有哪些?
- golang刷leetcode 经典(3) 设计推特
- Wechat Gymnasium Appointment Mini Program Graduation Design Finished Work (5) Task Book
猜你喜欢

Security First: Tools You Need to Know to Implement DevSecOps Best Practices

魔豹联盟:佛萨奇2.0dapp系统开发模式详情

每日优鲜倒了,叮咚买菜的春天在哪?

打补丁的日子,比写代码的日子难熬多了

mysql四种隔离级别

shell中awk命令的if条件语句引入外置变量

在线文档Sheet技术解析

Enterprise cloud cost control, are you really doing it right?
Interviewer: can you talk about optimistic locking and pessimistic locks

千万级别的表分页查询非常慢,怎么办?
随机推荐
记一次 .NET 某工控自动化控制系统 卡死分析
判断文件属主
Mini Program Graduation Works WeChat Gymnasium Reservation Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
redis summary_distributed cache
ffmpeg编译后找不到libx264
golang刷leetcode动态规划(9)不同路径 II
shell中awk命令的if条件语句引入外置变量
搭建属于自己的知识库(Wikijs)
打补丁的日子,比写代码的日子难熬多了
Interviewer: can you talk about optimistic locking and pessimistic locks
Navicat 连接Oracle时提示oracle library is not loaded的问题解决
CUDA+Pycharm-gpu版本+Anaconda安装
Go 语言快速入门指南: 介绍及安装
技术人生 | 如何画业务大图
谁抢走了华大基因的生意?
红队实战靶场ATT&CK(一)
redis总结_分布式缓存
golang刷leetcode 经典(5)设计哈希集合
企业云成本管控,你真的做对了吗?
土巴兔IPO五次折戟,互联网家装未解“中介”之痛