class SeatManager:
def __init__(self, n: int):
self.seats = [False] * n
def reserve(self) -> int:
for i in range(len(self.seats)):
if not self.seats[i]:
self.seats[i] = True
return i + 1
def unreserve(self, seatNumber: int) -> None:
self.seats[seatNumber - 1] = Falseclass SeatManager:
def __init__(self, n: int):
self.unres = list(range(1, n + 1))
heapq.heapify(self.unres)
def reserve(self) -> int:
return heapq.heappop(self.unres)
def unreserve(self, seatNumber: int) -> None:
heapq.heappush(self.unres, seatNumber)class SeatManager:
def __init__(self, n: int):
self.minHeap = []
self.nextSeat = 1
def reserve(self) -> int:
if self.minHeap:
return heapq.heappop(self.minHeap)
seat = self.nextSeat
self.nextSeat += 1
return seat
def unreserve(self, seatNumber: int) -> None:
heapq.heappush(self.minHeap, seatNumber)class SeatManager:
def __init__(self, n: int):
self.available = SortedSet()
self.nextSeat = 1
def reserve(self) -> int:
if self.available:
return self.available.pop(0)
seat = self.nextSeat
self.nextSeat += 1
return seat
def unreserve(self, seatNumber: int) -> None:
self.available.add(seatNumber)