Skip to content

Commit 5c7b7c5

Browse files
authored
Create 1845-seat-reservation-manager.js
1 parent db64a15 commit 5c7b7c5

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
class SeatManager {
3+
/**
4+
* MinHeap
5+
* Time O(n*log(n)) | Space O(n)
6+
* https://leetcode.com/problems/seat-reservation-manager/
7+
* @param {number} n
8+
*/
9+
constructor(n) {
10+
this.unreserved = new MinPriorityQueue({
11+
compare: (a, b) => a - b
12+
});
13+
14+
for (let i = 1; i < n + 1; i++) {
15+
this.unreserved.enqueue(i);
16+
}
17+
}
18+
19+
/**
20+
* Time O(log(n)) | Space O(1)
21+
* @return {number}
22+
*/
23+
reserve() {
24+
const minAvailableSeat = this.unreserved.dequeue();
25+
return minAvailableSeat;
26+
}
27+
28+
/**
29+
* Time O(log(n)) | Space O(1)
30+
* @param {number} seatNumber
31+
* @return {void}
32+
*/
33+
unreserve(seatNumber) {
34+
this.unreserved.enqueue(seatNumber);
35+
}
36+
}

0 commit comments

Comments
 (0)