0
点赞
收藏
分享

微信扫一扫

恋上数据结构与算法第三季笔记高频题3

英乐 2022-04-03 阅读 65

21._252_会议室

标签:数组、排序

思路:对所有的会议时间进行排序,遍历所有的会议时间,如果下一个会议的开始时间小于上一个会议的结束时间,返回false;

代码:

    public boolean  canAttendMeetings(int[][] intervals){
        if(intervals == null || intervals.length == 0) return true;
//        按照会议的开始时间,从小到大排序
        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;

    }

2._253_会议室Ⅱ

标签:数组、最小堆、排序

思路1:1)先对所有的会议按开始时间进行排序。

           2)遍历所有的会议。如果会议的开始时间 < 小顶堆的最小值,则将此会议的结束时间添加至小顶堆中;如果会议的开始时间 >=小顶堆的最小值,则删除小顶堆中的最小值,并将此会议的结束时间添加至小顶堆中。

           3)最后返回heap.size()

代码:

    public int minMeetingRooms(int[][] intervals){
        if(intervals == null || intervals.length == 0) return 0;
        Arrays.sort(intervals,(m1, m2) -> m1[0] - m2[0]); 
     
//        建立一个小顶堆
        PriorityQueue<Integer> heap = new PriorityQueue<>();
//        添加0号会议的结束时间
        heap.add(intervals[0][1]);
        for(int i = 1;i < intervals.length;i++){
//            下一个会议的开始时间 >= 最小值
            if(intervals[i][0] >= heap.peek()){
                heap.remove();
            }
            heap.add(intervals[i][1]);
        }
        return heap.size();

    }
}

时间复杂度O(nlogn) 空间复杂度O(n)

思路2:分开排序

             对会议的开始时间和会议的结束时间分别排序

    public int minMeetingRooms(int[][] intervals){
        if(intervals == null || intervals.length == 0) return 0;
        int room = 0;
        int[] begins = new int[intervals.length];
        int[] ends = new int[intervals.length];
        Arrays.sort(intervals,(m1,m2) -> m1[0] - m2[0]);
        for(int i = 0;i < intervals.length;i++){
            begins[i] = intervals[i][0];
            ends[i] = intervals[0][i];
        }
      
        int endIdx = 0;
        for(int begin : begins){
            if(begin >= ends[endIdx]){ //能重复利用会议室
                endIdx++;
            }else{ //需要新开一个会议室
                room++;
            }
        }
        return room;
    }
举报

相关推荐

0 条评论