# Seat reservation manager

September 6, 2022

heapProblem URL: Seat reservation manager

We will create a min heap with the capacity of the seat manager. Then when someone reserve a seat, we will pop it from our min heap, and when someone unreserve a seat, we will push back the value to our heap.

```
class SeatManager:
def __init__(self, n: int):
self.heap = [i for i in range(1, n+1)]
def reserve(self) -> int:
return heapq.heappop(self.heap)
def unreserve(self, seatNumber: int) -> None:
heapq.heappush(self.heap, seatNumber)
# Your SeatManager object will be instantiated and called as such:
# obj = SeatManager(n)
# param_1 = obj.reserve()
# obj.unreserve(seatNumber)
```

Time Complexity: `O(n)`

for init, `O(1)`

for rest of the operations

Space Complexity: `O(n)`