Given an array of meeting time intervals consisting of start and end times
[[s1,e1],[s2,e2],...]
(si < ei), find the minimum number of conference rooms required.
Example 1:
Input: [[0, 30],[5, 10],[15, 20]]
Output: 2
Example 2:
Input: [[7,10],[2,4]] Output: 1
Java Solution :
class Solution {
public int minMeetingRooms(int[][] intervals) {
Arrays.sort(intervals,(a,b)-> a[0] - b[0]);
int numOfMeetingRooms = 0;
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for(int[] interval : intervals){
if(minHeap.isEmpty()){
minHeap.offer(interval[1]);
numOfMeetingRooms++;
}else if(minHeap.peek() <= interval[0]){
minHeap.poll();
minHeap.offer(interval[1]);
}else{
minHeap.offer(interval[1]);
numOfMeetingRooms++;
}
}
return numOfMeetingRooms;
}
}