-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmeeting_rooms_3.py
More file actions
34 lines (22 loc) · 859 Bytes
/
meeting_rooms_3.py
File metadata and controls
34 lines (22 loc) · 859 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from heapq import heappush, heappop
class Solution:
def mostBooked(self,n, meetings) -> int:
used = [[0,i]for i in range(n)]
free = []
count = [0]*n
meetings.sort()
for start, end in meetings:
while used and used[0][0] <= start:
_,room_number = heappop(used)
heappush(free,room_number)
if not free:
end_time,room_number = heappop(used)
meeting_len = end - start
end = end_time + meeting_len
heappush(free,room_number)
room_number = heappop(free)
count[room_number] +=1
heappush(used,[end,room_number])
return count.index(max(count))
sol = Solution()
print(sol.mostBooked(3,[[1,20],[2,10],[3,5],[4,9],[6,8]]))