1353. 最多可以参加的会议数目

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了1353. 最多可以参加的会议数目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

题目

1353. 最多可以参加的会议数目

扫描线算法

这里需要遍历所有日期,题目中日期范围是1 <= events[i][0] <= events[i][1] <= 10^5,那么就遍历这些日期,逐个日期去判断当前日期是否可以参加会议。

    public int maxEvents(int[][] events) {
        int res=0,eventIndex=0,n=events.length;
        Arrays.sort(events,(a,b)->a[0]==b[0]?a[1]-b[1]:a[0]-b[0]);
        PriorityQueue<Integer> pq=new PriorityQueue<>();//存放endday
        for(int i=1;i<=100000;++i){//遍历所有日期
            if(eventIndex==n&&pq.isEmpty()) break;//已经没有可参加的会议
            //当前日期恰好为某会议的startday
            while(eventIndex<n&&events[eventIndex][0]==i) {
                pq.offer(events[eventIndex][1]);
                eventIndex++;
            }
            while(!pq.isEmpty()&&pq.peek()<i) pq.poll();//去除已经过期的会议
            if(!pq.isEmpty()){//当前日期可以参加一个会议
                pq.poll();
                res++;
            }
        }
        return res;
    }

脚本宝典总结

以上是脚本宝典为你收集整理的1353. 最多可以参加的会议数目全部内容,希望文章能够帮你解决1353. 最多可以参加的会议数目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: