1353. 最多可以参加的会议数目
2021/11/17 6:39:53
本文主要是介绍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. 最多可以参加的会议数目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23JAVA语音识别项目入门教程
- 2024-11-23Java云原生学习:从入门到实践
- 2024-11-22Java创业学习:初学者的全面指南
- 2024-11-22JAVA创业学习:零基础入门到实战应用教程
- 2024-11-22Java创业学习:从零开始的Java编程入门教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22JAVA对接阿里云智能语音服务学习教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22Java副业学习:零基础入门到实战项目
- 2024-11-22Java副业学习:零基础入门指南