文章目录

  • 1. 题目
  • 2. 解题

1. 题目

请你设计一个管理 n 个座位预约的系统,座位编号从 1 到 n 。

请你实现 SeatManager 类:

  • SeatManager(int n) 初始化一个 SeatManager 对象,它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。
  • int reserve() 返回可以预约座位的 最小编号 ,此座位变为不可预约。
  • void unreserve(int seatNumber) 将给定编号 seatNumber 对应的座位变成可以预约。
示例 1:
输入:
["SeatManager", "reserve", "reserve", "unreserve", "reserve", "reserve", "reserve", "reserve", "unreserve"]
[[5], [], [], [2], [], [], [], [], [5]]
输出:
[null, 1, 2, null, 2, 3, 4, 5, null]解释:
SeatManager seatManager = new SeatManager(5); // 初始化 SeatManager ,有 5 个座位。
seatManager.reserve();    // 所有座位都可以预约,所以返回最小编号的座位,也就是 1 。
seatManager.reserve();    // 可以预约的座位为 [2,3,4,5] ,返回最小编号的座位,也就是 2 。
seatManager.unreserve(2); // 将座位 2 变为可以预约,现在可预约的座位为 [2,3,4,5] 。
seatManager.reserve();    // 可以预约的座位为 [2,3,4,5] ,返回最小编号的座位,也就是 2 。
seatManager.reserve();    // 可以预约的座位为 [3,4,5] ,返回最小编号的座位,也就是 3 。
seatManager.reserve();    // 可以预约的座位为 [4,5] ,返回最小编号的座位,也就是 4 。
seatManager.reserve();    // 唯一可以预约的是座位 5 ,所以返回 5 。
seatManager.unreserve(5); // 将座位 5 变为可以预约,现在可预约的座位为 [5] 。提示:
1 <= n <= 10^5
1 <= seatNumber <= n
每一次对 reserve 的调用,题目保证至少存在一个可以预约的座位。
每一次对 unreserve 的调用,题目保证 seatNumber 在调用函数前都是被预约状态。
对 reserve 和 unreserve 的调用 总共 不超过 10^5 次。

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

2. 解题

class SeatManager {set<int> seats;
public:SeatManager(int n) {for(int i = 1; i <= n; ++i)seats.insert(i);}int reserve() {int id = *seats.begin();// set 有序,最小的可用座位seats.erase(*seats.begin());// 座位被使用return id;}void unreserve(int seatNumber) {seats.insert(seatNumber); // 座位可用}
};

752 ms 171.3 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1845. 座位预约管理系统(set)相关推荐

  1. 力扣1845——座位预约管理系统(优先队列)

    题目(中等) 请你设计一个管理 n 个座位预约的系统,座位编号从 1 到 n . 请你实现 SeatManager 类: SeatManager(int n) 初始化一个 SeatManager 对象 ...

  2. Java计算机毕业设计图书馆座位预约管理系统源码+系统+数据库+lw文档

    Java计算机毕业设计图书馆座位预约管理系统源码+系统+数据库+lw文档 Java计算机毕业设计图书馆座位预约管理系统源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  3. 基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql)

    基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...

  4. 基于SSM的图书馆座位预约管理系统

    1,本系统主要采取java语言的SSM框架为主要开发技术,并使用了一些div+css语言来实现图书馆座位预约系统前端页面的布局,前端的整体布局以电影院定位为参看模板设计,查看方便,操作简单.为了高效, ...

  5. 基于JAVA图书馆座位预约管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA图书馆座位预约管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA图书馆座位预约管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  6. 2022基于微信小程序的图书馆座位预约管理系统.rar(论文+程序设计源码+数据库)毕业设计

    随着时代不断的发展,我们对于知识的汲取需要从不同领域了解,从而扩大自己的知识面,图书馆作为大学生学习的宝地,有着不可替代的地位.但是在互联网信息化时代,传统模式下的图书馆管理模式,并不能满足校园学生需 ...

  7. 基于jsp+mysql+Spring+mybatis的SSM图书馆座位预约管理系统文末附下载地址

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以. IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x, ...

  8. 基于SSM的图书馆座位预约管理系统占座系统-java图书馆座位预约管理系统占座系统...

    基于SSM的图书馆座位预约管理系统占座系统-java图书馆座位预约管理系统占座系统 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释. 2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善 ...

  9. 【JAVA程序设计】(C00067)基于SSM(非maven)图书馆座位预约管理系统

    基于SSM(非maven)图书馆座位预约管理系统 项目简介 项目获取 开发环境 项目技术 运行截图 项目简介 基于ssm框架非maven开发的图书馆预约占座管理系统共分为三个角色:系统管理员.教师.学 ...

最新文章

  1. Latex注释快捷键
  2. 系统通知并发问题_iOS 14 系统又出现问题了,短信通知无响应
  3. java 内存映射文件 主要应用_VC++中使用内存映射文件处理大文件(3)
  4. 水磨石地面分隔条设置示意图_水磨石地面设置分格条的作用是什么
  5. 【H.264/AVC视频编解码技术】第六章【指数哥伦布编码】
  6. idea 快捷键 小结
  7. openvas 配置遇到的问题
  8. php后台+前端开发过程整理
  9. ES6——Class 笔记
  10. 主流H.264编码器对比测试 (MSU出品)
  11. Leetcode143. 重排链表 (golang描述)
  12. R与Python手牵手:数据科学导论系列(包的载入)
  13. 网上支付(支付宝/银联)
  14. matlab代码 无标度网络 生成图,标准无标度网络matlab
  15. 基于Java的办公用品管理系统的设计与实现
  16. 微信小程序页面回到顶端的方式
  17. 天牛群,天牛须结合粒子群算法BAS-PSO。研究生阶段毕生所 学,低价出售!可定制pid参数整定。
  18. 文本分类(0)——scrapy爬新浪滚动新闻
  19. 快过年了,用五种不同的JS特效带你看烟花
  20. 如何掌控自己的手机时间

热门文章

  1. Python 之内置函数和匿名函数
  2. html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?
  3. ajax同步和异步的区别_同步电机和异步电机区别
  4. java从哪学到哪_Java JVM怎么学习啊?从哪方面入手?
  5. 所有的iPhone设备cell的宽度都是320,解决办法是?
  6. 小米 android 8,小米华为们谁最良心?10大手机厂商安卓8.0升级情况盘点
  7. 产品经理应该mysql_数据库对产品经理的重要性
  8. linux 安装git失败,Linux运维知识之linux下安装git常见故障整理
  9. osg指定向量旋转指定角度
  10. 使用webpack配置react并添加到flask应用