【优先级队列】主持人调度(二)

求解代码

java 复制代码
public int minmumNumberOfHost (int n, int[][] startEnd) {
        Arrays.sort(startEnd,(a,b)->{
            if(a[0]==b[0]){
                return Integer.compare(a[1], b[1]);
            }
            return Integer.compare(a[0], b[0]);
        });

        PriorityQueue<Integer> queue = new PriorityQueue<>();
        int maxHost = 0;
        for(int[] activity:startEnd){
            while(!queue.isEmpty()&&queue.peek()<=activity[0]){
                queue.poll();
            }

            queue.offer(activity[1]);
            maxHost = Math.max(maxHost,queue.size());
        }
        return maxHost;
    }

踩坑记录

❌1.排序比较器整数溢出

java 复制代码
Arrays.sort(startEnd, (a, b) ->
    (a[0] == b[0] ? b[1] - a[1] : a[0] - b[0])
);

❌2.返回值不能返回最后的堆大小

java 复制代码
return queue.size(); // 

因为题目要的是整个过程中,堆出现过的最大大小。

❌3.释放主持人只用 if可能不够

java 复制代码
if (queue.peek() <= activity[0]) {
    queue.poll();
}

因为实际情况下可能有多个活动已经结束。

相关推荐
数智工坊18 分钟前
【DACS论文阅读】跨域混合采样如何让语义分割模型从合成数据无缝迁移到真实世界
论文阅读·人工智能·算法·机器人·无人机
And_Ii20 分钟前
LeetCode 026. 重排链表
算法·leetcode·链表
心中有国也有家26 分钟前
catlass 算子模板库中的 FlashAttention 高性能实现
笔记·算法
是娇娇公主~26 分钟前
力扣——146.LRU缓存详解
算法·leetcode·缓存
我不是懒洋洋27 分钟前
【C++】类和对象( 类的定义、实例化、 this指针、 C++和C语言实现Stack对比)
c语言·开发语言·数据结构·c++·经验分享·算法·visual studio
_深海凉_30 分钟前
LeetCode热题100-路径总和 III
算法·leetcode·职场和发展
RTC老炮30 分钟前
WebRTC AEC3 算法原理分析
算法·webrtc
炽烈小老头35 分钟前
【每天学习一点算法 2026/05/20】省份数量
学习·算法
乐迪信息36 分钟前
乐迪信息:港口夜间船舶巡查难,AI摄像机法全天候监测
人工智能·物联网·算法·计算机视觉·目标跟踪
sali-tec37 分钟前
C# 基于OpenCv的视觉工作流-章74-线-线距离
图像处理·人工智能·opencv·算法·计算机视觉