253. Meeting Rooms II

class Solution:
    def minMeetingRooms(self, intervals: List[List[int]]) -> int:
        intervals.sort()

        heap = []

        I = len(intervals)

        res = 1

        for start, end in intervals:
            while heap and heap[0] <= start:
                heapq.heappop(heap)

            heapq.heappush(heap, end)

            res = max(res, len(heap))

        return res