Meeting rooms ii

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

        intervals.sort(key=lambda x: (x[0], x[1]))

        minHeap = [intervals[0][1]]
        heapq.heapify(minHeap)

        for interval in intervals[1:]:            
            if minHeap[0] <= interval[0]:
                heapq.heappop(minHeap)

            heapq.heappush(minHeap, interval[1])

        return len(minHeap)

Meeting Rooms II

Difficulty: Medium


Given an array of meeting time intervals intervals where intervals[i] = [starti, endi], return the minimum number of conference rooms required.

 

Example 1:

Input: intervals = [[0,30],[5,10],[15,20]]
Output: 2

Example 2:

Input: intervals = [[7,10],[2,4]]
Output: 1

 

Constraints:

  • 1 <= intervals.length <= 104
  • 0 <= starti < endi <= 106