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
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~