平板网站开发环境,专业做网站建设的,骑士cms怎么从别的网站采集信息,wordpress前台登陆1845. Seat Reservation Manager
题目要求#xff1a;初始化一个SeatManager类包括默认构造函数和类函数#xff0c;所有的seat初始化为true。reverse函数返回最小的true#xff0c;然后把这个编号的椅子赋值为false。unreverse(seatNumber)函数把编号为seatNumber的椅子恢…1845. Seat Reservation Manager
题目要求初始化一个SeatManager类包括默认构造函数和类函数所有的seat初始化为true。reverse函数返回最小的true然后把这个编号的椅子赋值为false。unreverse(seatNumber)函数把编号为seatNumber的椅子恢复成true。
思路
本来想用常规的循环每次reverse就搜索最小值时间复杂度是O(n*m)会超时。因此考虑采用优先队列每次会自动排序队列的top就是可用的最小值用完之后pop()。如果unreverse则把seatNumber push到优先队列中。
class SeatManager {
public:priority_queueint, vectorint, greaterint availableSeats;SeatManager(int n) {for (int seatNumber 1; seatNumber n; seatNumber) {availableSeats.push(seatNumber);}}int reserve() {int seatNumber availableSeats.top();availableSeats.pop();return seatNumber;}void unreserve(int seatNumber) {availableSeats.push(seatNumber);}
};/*** Your SeatManager object will be instantiated and called as such:* SeatManager* obj new SeatManager(n);* int param_1 obj-reserve();* obj-unreserve(seatNumber);*/