1、题目
2、解题思路
(1)解决方案:
<1>先判断是否数组为空,如果为空的话直接返回;
<2>对二维数组的元素根据第一个元素做升序排序(自定义比较器)
<3>排序后,遍历数组,判断是否有重叠的区间;是的话直接返回false;最后还没有重叠的则返回true;
3、java代码
public boolean canAttendMeetings(int[][] intervals){
//1、判空
if(intervals.length==0) return true;
//2、排序
Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));
//3、比较区间是否重叠
//创建临时变量来存储当前的比较值
int[] tmp=intervals[0];
//遍历原来的数组,比较元素区间是否重叠;重叠的话返回false,不重叠改变比较值,接着循环
for(int i=1;i<intervals.length;i++){
if(intervals[i][0]<tmp[1]){ return false; }else{ tmp=intervals[i]; }
}
return true;
}