美文网首页
253. Meeting Rooms II 会议室 II

253. Meeting Rooms II 会议室 II

作者: justonemoretry | 来源:发表于2021-09-09 22:19 被阅读0次
image.png

解法

public class Struct253 {

    public class Interval {
        int start;
        int end;

        Interval() {
            start = 0;
            end = 0;
        }

        Interval(int s, int e) {
            start = s;
            end = e;
        }
    }

    public int minMeetingRooms(Interval[] intervals) {
        // 按区间的start左侧排序,实现Comparator接口
        Arrays.asList(intervals, new Comparator<Interval>() {
            @Override
            public int compare(Interval o1, Interval o2) {
                return o1.start - o2.start;
            }
        });

        // 小顶堆
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        for (int i = 0; i < intervals.length; i++) {
            // 开始时间大于前面结束时间的最小值,说明后面的时间段也都是这样,前面已经按开始时间排序了
            // 说明可以和这个共用一个会议室,弹出
            if (!pq.isEmpty() && intervals[i].start >= pq.peek()) {
                pq.poll();
            }
            pq.offer(intervals[i].end);
        }
        return pq.size();
    }
}

相关文章

网友评论

      本文标题:253. Meeting Rooms II 会议室 II

      本文链接:https://www.haomeiwen.com/subject/pcqrwltx.html