1
class Solution:
2
def smallestChair(self, times: List[List[int]], targetFriend: int) -> int:
3
arrivals = []
4
departures = []
5
for ind, (x, y) in enumerate(times):
6
heappush(arrivals, (x, ind))
7
heappush(departures, (y, ind))
8
d = {}
9
occupied = [0] * len(times)
10
while True:
11
if arrivals and departures and arrivals[0][0] < departures[0][0]:
12
_, ind = heappop(arrivals)
13
d[ind] = occupied.index(0)
14
occupied[d[ind]] = 1
15
if ind == targetFriend:
16
return d[ind]
17
elif arrivals and departures and arrivals[0][0] >= departures[0][0]:
18
_, ind = heappop(departures)
19
occupied[d[ind]] = 0

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0