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