import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param intervals int整型二维数组
* @return int整型
*/
public int minMeetingRooms (int[][] intervals) {
Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
int count = 0;
for (int[] interval : intervals) {
if (!priorityQueue.isEmpty() && priorityQueue.peek() <= interval[0]) {
priorityQueue.poll();
} else {
count++;
}
priorityQueue.add(interval[1]);
}
return count;
}
}
本题知识点分析:
1.优先级队列
2.自定义排序
3.数组遍历
本题解题思路分析:
1.创建优先级队列存放每个节点的右端点
2.如果队列不为空并且栈顶元素小于等于新到达的节点的左端点,表明要进行出栈操作,可以合并,而不用添加
3.栈为空,count++,或者第一个结点的右端点大于第二个结点的左端点,也是count++
4.最后返回count
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~

京公网安备 11010502036488号