Skip to content

Commit 09c5e39

Browse files
committed
add 1845
1 parent c68727b commit 09c5e39

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

1845-seat-reservation-manager.cpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
1845. Seat Reservation Manager
3+
4+
Submitted: December 7, 2024
5+
6+
Runtime: 47 ms (beats 96.42%)
7+
Memory: 155.57 MB (beats 27.02%)
8+
*/
9+
10+
class SeatManager {
11+
private:
12+
const int capacity;
13+
// priority queue uses reversed ordering for some reason
14+
priority_queue<int, vector<int>, greater<int> > seats;
15+
public:
16+
SeatManager(int n) : capacity(n) {
17+
// all seats initially available
18+
for (int i = 1; i <= n; ++i) seats.push(i);
19+
}
20+
21+
int reserve() {
22+
// lowest seat number
23+
int seatNumber = seats.top();
24+
seats.pop();
25+
return seatNumber;
26+
}
27+
28+
void unreserve(int seatNumber) {
29+
// seat is now available
30+
seats.push(seatNumber);
31+
}
32+
};
33+
34+
/**
35+
* Your SeatManager object will be instantiated and called as such:
36+
* SeatManager* obj = new SeatManager(n);
37+
* int param_1 = obj->reserve();
38+
* obj->unreserve(seatNumber);
39+
*/

0 commit comments

Comments
 (0)