leetcode 会议室2 与 会议室1
会议室1
描述给定一系列的会议时间间隔,包括起始和结束时间
[[s1,e1],[s2,e2],…(si < ei)
,确定一个人是否可以参加所有会议。(0,8),(8,10)在8这一时刻不冲突
样例
样例1
输入: intervals = [(0,30),(5,10),(15,20)] 输出: false 解释: (0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突
样例2
输入: intervals = [(5,8),(9,15)]
输出: true
解释:
这两个时间段不会冲突
/** * Definition of Interval: * public classs Interval { * int start, end; * Interval(int start, int end) { * this.start = start; * this.end = end; * } * } */ public class Solution { /** * @param intervals: an array of meeting time intervals * @return: if a person could attend all meetings */ public boolean canAttendMeetings(List<Interval> intervals) { // Write your code here if(intervals.isEmpty() || intervals.size()==0) return true; //按照end升序排序 Collections.sort(intervals, (a,b)->(a.end - b.end)); int end = intervals.get(0).end; for(int i = 1; i < intervals.size(); i++){ int start = intervals.get(i).start; if(start >= end){ end = intervals.get(i).end; continue; }else{ return false; } } return true; } }
会议室2
描述给定一系列的会议时间间隔intervals,包括起始和结束时间
[[s1,e1],[s2,e2],...] (si < ei)
,找到所需的最小的会议室数量。(0,8),(8,10)在8这一时刻不冲突
样例样例1
输入: intervals = [(0,30),(5,10),(15,20)] 输出: 2 解释: 需要两个会议室 会议室1:(0,30) 会议室2:(5,10),(15,20)
样例2
输入: intervals = [(2,7)] 输出: 1 解释: 只需要1个会议室就够了
[labuladong的题解网站](https://labuladong.gitee.io/algo/3/28/100/)
/** * Definition of Interval: * public classs Interval { * int start, end; * Interval(int start, int end) { * this.start = start; * this.end = end; * } * } */ public class Solution { /** * @param intervals: an array of meeting time intervals * @return: the minimum number of conference rooms required */ public int minMeetingRooms(List<Interval> intervals) { // Write your code here int[] begin = new int[intervals.size()]; int[] end = new int[intervals.size()]; int n = intervals.size(); int i = 0; int j = 0; for(Interval node : intervals){ begin[i++] = node.start; end[j++] = node.end; } Arrays.sort(begin); Arrays.sort(end); // Collections.sort(intervals,()); int count =0; int result =0; i =0; j = 0; while(i<n && j<n){ if(begin[i] < end[j]){ count++;//扫描到一个红点 count++; i++; }else{ count--; //扫描到一个绿点 count--; j++; } result = Math.max(count,result); } return result; } }
本文来自博客园,作者:{zhongweiLeex},转载请注明原文链接:{https://www.cnblogs.com/lzw6/}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了