LC 0253 [M] Meeting Rooms II - ALawliet/algorithms GitHub Wiki
class Solution:
def minMeetingRooms(self, intervals: List[List[int]]) -> int:
starts = sorted(i[0] for i in intervals)
ends = sorted(i[1] for i in intervals)
new_rooms = 0
first_avail_room = 0
for start in starts:
if start >= ends[first_avail_room]:
first_avail_room += 1 # free, consume room
else:
new_rooms += 1 # unavailable, add room
return new_rooms