File tree 1 file changed +39
-0
lines changed
1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
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
+ */
You can’t perform that action at this time.
0 commit comments