less than 1 minute read

1 min read 269 words

Problem Statement

leetcode problem link

Solution [Accepted]

class Solution:
    def minMeetingRooms(self, intervals: List[List[int]]) -> int:
        intervals.sort()
        min_heap = []
        for start, end in intervals:
            if min_heap and start >= min_heap[0]:
                heapq.heappop(min_heap)
            heapq.heappush(min_heap, end)
        return len(min_heap)
public class Solution {
    public int MinMeetingRooms(int[][] intervals) {
        Array.Sort(intervals, (a, b) => a[0].CompareTo(b[0]));
        PriorityQueue<int, int> queue = new PriorityQueue<int, int>();
        foreach(var interval in intervals) {
            int start = interval[0];
            int end = interval[1];
            if (queue.Count > 0 && start >= queue.Peek()) {
                queue.Dequeue();
            }
            queue.Enqueue(end, end);
        }
        return queue.Count;
    }
}

Leave a comment