252.会议室

2022-08-10  本文已影响0人  水中的蓝天

252.会议室

给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],[s3,e3]...] (s < e),请你判断一个人是否能够参加这里面的全部会议

输入:[[0,30],[5,10],[15,20]]
输出:false
输入:[[7,10],[2,4]]
输出:true

思路: 假如把会议开始时间做一个排序,然后遍历对比当前会议开始时间 和 前一个会议结束时间 就可以得出结论



    public boolean canAttendMeetings(int[][] intervals) {

        //全部都能参加,因为根本什么都不需要做
        if(intervals == null || intervals.length == 0) return true;
        
        //(m1,m2) -> (m1[0] - m2[0]) 这个表达式就表示 从小到大升序排列
        Arrays.sort(intervals,(m1,m2) -> m1[0] - m2[0]);

        for(int i = 1;i < intervals.length; i++) {
           //当前会议的开始时间 小于 前一个会议的结束时间说明 有重叠
           if(intervals[i][0] < intervals[i-1][1]) return false;
        }

        return true;

   }


上一篇 下一篇

猜你喜欢

热点阅读