Min-heap of end times
Time O(n log n) Space O(n)Sort by start. For each meeting, if the earliest-ending room is free (end ≤ start), reuse it (poll). Push this meeting's end. The heap's maximum size is the answer.
[[0,30],[5,10],[15,20]]room end times (min-heap)(list)
Step 1/3Meeting 0–30 takes room 1.
import java.util.*;
class Solution {
public int minMeetingRooms(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
PriorityQueue<Integer> ends = new PriorityQueue<>();
for (int[] m : intervals) {
if (!ends.isEmpty() && ends.peek() <= m[0]) ends.poll(); // reuse a freed room
ends.offer(m[1]);
}
return ends.size();
}
}Verdict: Clear and standard.