Skip to content

Commit 54c1483

Browse files
committed
feat: add solutions to lc problem: No.1845. Reservation Manager
1 parent 4b48d7b commit 54c1483

File tree

4 files changed

+123
-2
lines changed

4 files changed

+123
-2
lines changed

solution/1800-1899/1845.Seat Reservation Manager/README.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,22 +55,63 @@ seatManager.unreserve(5); // 将座位 5 变为可以预约,现在可预约的
5555

5656
<!-- 这里可写通用的实现逻辑 -->
5757

58+
“小根堆”实现。
59+
5860
<!-- tabs:start -->
5961

6062
### **Python3**
6163

6264
<!-- 这里可写当前语言的特殊实现逻辑 -->
6365

6466
```python
67+
class SeatManager:
68+
69+
def __init__(self, n: int):
70+
self.q = [i for i in range(1, n + 1)]
71+
72+
def reserve(self) -> int:
73+
return heapq.heappop(self.q)
6574

75+
def unreserve(self, seatNumber: int) -> None:
76+
heapq.heappush(self.q, seatNumber)
77+
78+
79+
# Your SeatManager object will be instantiated and called as such:
80+
# obj = SeatManager(n)
81+
# param_1 = obj.reserve()
82+
# obj.unreserve(seatNumber)
6683
```
6784

6885
### **Java**
6986

7087
<!-- 这里可写当前语言的特殊实现逻辑 -->
7188

7289
```java
73-
90+
class SeatManager {
91+
private PriorityQueue<Integer> q;
92+
93+
public SeatManager(int n) {
94+
q = new PriorityQueue<>(n);
95+
for (int i = 1; i <= n; ++i) {
96+
q.offer(i);
97+
}
98+
}
99+
100+
public int reserve() {
101+
return q.poll();
102+
}
103+
104+
public void unreserve(int seatNumber) {
105+
q.offer(seatNumber);
106+
}
107+
}
108+
109+
/**
110+
* Your SeatManager object will be instantiated and called as such:
111+
* SeatManager obj = new SeatManager(n);
112+
* int param_1 = obj.reserve();
113+
* obj.unreserve(seatNumber);
114+
*/
74115
```
75116

76117
### **...**

solution/1800-1899/1845.Seat Reservation Manager/README_EN.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,52 @@ seatManager.unreserve(5); // Unreserve seat 5, so now the available seats are [5
5555
### **Python3**
5656

5757
```python
58+
class SeatManager:
5859

60+
def __init__(self, n: int):
61+
self.q = [i for i in range(1, n + 1)]
62+
63+
def reserve(self) -> int:
64+
return heapq.heappop(self.q)
65+
66+
def unreserve(self, seatNumber: int) -> None:
67+
heapq.heappush(self.q, seatNumber)
68+
69+
70+
# Your SeatManager object will be instantiated and called as such:
71+
# obj = SeatManager(n)
72+
# param_1 = obj.reserve()
73+
# obj.unreserve(seatNumber)
5974
```
6075

6176
### **Java**
6277

6378
```java
64-
79+
class SeatManager {
80+
private PriorityQueue<Integer> q;
81+
82+
public SeatManager(int n) {
83+
q = new PriorityQueue<>(n);
84+
for (int i = 1; i <= n; ++i) {
85+
q.offer(i);
86+
}
87+
}
88+
89+
public int reserve() {
90+
return q.poll();
91+
}
92+
93+
public void unreserve(int seatNumber) {
94+
q.offer(seatNumber);
95+
}
96+
}
97+
98+
/**
99+
* Your SeatManager object will be instantiated and called as such:
100+
* SeatManager obj = new SeatManager(n);
101+
* int param_1 = obj.reserve();
102+
* obj.unreserve(seatNumber);
103+
*/
65104
```
66105

67106
### **...**
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class SeatManager {
2+
private PriorityQueue<Integer> q;
3+
4+
public SeatManager(int n) {
5+
q = new PriorityQueue<>(n);
6+
for (int i = 1; i <= n; ++i) {
7+
q.offer(i);
8+
}
9+
}
10+
11+
public int reserve() {
12+
return q.poll();
13+
}
14+
15+
public void unreserve(int seatNumber) {
16+
q.offer(seatNumber);
17+
}
18+
}
19+
20+
/**
21+
* Your SeatManager object will be instantiated and called as such:
22+
* SeatManager obj = new SeatManager(n);
23+
* int param_1 = obj.reserve();
24+
* obj.unreserve(seatNumber);
25+
*/
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class SeatManager:
2+
3+
def __init__(self, n: int):
4+
self.q = [i for i in range(1, n + 1)]
5+
6+
def reserve(self) -> int:
7+
return heapq.heappop(self.q)
8+
9+
def unreserve(self, seatNumber: int) -> None:
10+
heapq.heappush(self.q, seatNumber)
11+
12+
13+
# Your SeatManager object will be instantiated and called as such:
14+
# obj = SeatManager(n)
15+
# param_1 = obj.reserve()
16+
# obj.unreserve(seatNumber)

0 commit comments

Comments
 (0)