LeetCode 253 Meeting Rooms II - Implementation

The approach

Separate start and end times. Sort and sweep.

def minMeetingRooms(intervals): starts = sorted(i[0] for i in intervals) ends = sorted(i[1] for i in intervals)

rooms = 0
maxRooms = 0
s = e = 0

while s < len(starts):
    if starts[s] < ends[e]:
        rooms += 1
        maxRooms = max(maxRooms, rooms)
        s += 1
    else:
        rooms -= 1
        e += 1

return maxRooms

O(nlogn)O(n \log n) time, O(n)O(n) space.