给定一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,请你判断一个人是否能够参加这里面的全部会议。
示例 1:
输入:intervals = [[0,30],[5,10],[15,20]]
输出:false
示例 2:
输入:intervals = [[7,10],[2,4]]
输出:true
提示:
0 <= intervals.length <= 104intervals[i].length == 20 <= starti < endi <= 106
题目太简单10行以内的有效代码,直接上代码,有疑问请留言或者私信:
java
class Solution {
//解题思路:把数组按照开始时间排序,如果开始时间相同,按照结束时间排序
//拍完序之后如果某个会议的开始时间小于上个会议的结束时间就无法参加所有的会议
public boolean canAttendMeetings(int[][] intervals) {
if(intervals == null || intervals.length < 2) {
return true;
}
//把会议数组排序
Arrays.sort(intervals, (a,b)->a[0] == b[0]? a[1] - b[1] : a[0] - b[0]);
for(int i = 1; i < intervals.length; i++) {
if(intervals[i][0] < intervals[i-1][1]) {
return false;
}
}
/**for循环过程没有发现冲突,说明可以开完 */
return true;
}
}
运行效果:
