※ 引述《ZooseWu (动物园 公告)》之铭言:
: 1845. Seat Reservation Manager
: 设计一个订位系统。
: 1.初始化,它会给你一个n代表有n个位子可以订,初始时所有位置都是可订状态。
: 2.reserve() 选择可订位中数字最小的一个位子并回传。
: 3.unreserve(int seatNumber) 取消数字seatNumber的订位。
思路:
1.初始情况 1~n 都可以预约,然后数字小的会先被预约,就是一直取一个一直递增的
值(假设为id)。
2.会发生变化只有前面预约的人取消了预约,因为被取消的编号一定比当前id小。
我们把这些取消的座位编号排序放到一个容器,如果容器不为空就从容器里面取
最小值,否则继续取当前id,容器方面选用 heap 就可以实现取消的位子自动排序。
Java Code: