码迷,mamicode.com
首页 > 其他好文 > 详细

253.Meeting Rooms II

时间:2016-06-21 12:37:58      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

     /*
      * 253.Meeting Rooms II
      * 2016-6-20 by Mingyang
      * 贪心算法,和Rearrange array to certain distance一样
      */
     public int minMeetingRooms(Interval[] intervals) {
            if(intervals == null || intervals.length == 0) return 0;
            Arrays.sort(intervals, new Comparator<Interval>(){
                public int compare(Interval i1, Interval i2){
                    return i1.start - i2.start;
                }
            });
            // 用堆来管理房间的结束时间
            PriorityQueue<Integer> endTimes = new PriorityQueue<Integer>();
            endTimes.offer(intervals[0].end);
            for(int i = 1; i < intervals.length; i++){
                // 如果当前时间段的开始时间大于最早结束的时间,则可以更新这个最早的结束时间为当前时间段的结束时间,如果小于的话,就加入一个新的结束时间,表示新的房间
                if(intervals[i].start >= endTimes.peek()){
                    endTimes.poll();
                }
                endTimes.offer(intervals[i].end);
            }
            // 有多少结束时间就有多少房间
            return endTimes.size();
        }

 

253.Meeting Rooms II

标签:

原文地址:http://www.cnblogs.com/zmyvszk/p/5602965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!