Meeting Rooms II
来源:互联网 发布:mac免费视频剪辑软件 编辑:程序博客网 时间:2024/05/17 06:02
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...]
(si < ei), find the minimum number of conference rooms required.
For example,
Given [[0, 30],[5, 10],[15, 20]]
,
return 2
.
/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */public class Solution { public int minMeetingRooms(Interval[] intervals) { if(intervals == null || intervals.length == 0) return 0; int min = 0; int max = 0; for(int i=0; i<intervals.length; i++){ min = Math.min(min, intervals[i].start); max = Math.max(max, intervals[i].end); } int[] count = new int[max-min+1]; for(int i=0; i<intervals.length; i++){ count[intervals[i].start]++; count[intervals[i].end]--; } int maxroom = Integer.MIN_VALUE; int num = 0; for(int i=0; i<count.length; i++){ num += count[i]; maxroom = Math.max(maxroom, num); } return maxroom; }}
方法2:用pq来做,首先将interval按照start point来sort一遍,然后用priorityqueue来维护一个最小堆,用来保存所有meeting的end值,如果新比较的meeting的start > pq.peek(),则证明之前的会议已经开完,那么可以用之前的会议室,那么pq poll 之前的end,也就是说,pq里面维护的是那些具有重复性质overlap的会议的end值。最后pq的size就是不能够解决的会议,是重复开的会议的个数。O(nlogn)
/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */public class Solution { public int minMeetingRooms(Interval[] intervals) { if(intervals == null || intervals.length == 0) return 0; Arrays.sort(intervals, new Comparator<Interval>(){ @Override public int compare(Interval a, Interval b){ return (a.start - b.start); } }); PriorityQueue<Integer> pq = new PriorityQueue<Integer>(); pq.add(intervals[0].end); for(int i=1; i<intervals.length; i++){ if(intervals[i].start >= pq.peek()){ pq.poll(); } pq.add(intervals[i].end); } return pq.size(); }}
0 0
- *LeetCode-Meeting Rooms II
- [LeetCode253]Meeting Rooms II
- Meeting Rooms II
- Meeting Rooms II
- leetcode Meeting Rooms II
- Meeting Rooms II
- Meeting Rooms II
- 253 Meeting Rooms II
- 253. Meeting Rooms II
- 253. Meeting Rooms II
- [LeetCode 253] Meeting Rooms II
- Leetcode 253Meeting Rooms II
- [LeetCode 253] Meeting Rooms II
- LeetCode 253. Meeting Rooms II
- [LeetCode]Meeting Rooms II
- LeetCode 253. Meeting Rooms II
- Leetcode 252. Meeting Rooms & 253. Meeting Rooms II
- LeetCode 题解(255) : Meeting Rooms II
- win7操作系统:键盘快捷方式
- maven使用笔记
- 网络号、掩码、广播地址
- 洛谷 P1414 又是毕业季II
- What I have learnt from System Life Cycle and How it influence my progress in my IA
- Meeting Rooms II
- windows上使用eclipse远程连接hadoop进行程序开发没有权限访问问题
- vmare nat模式无法上网
- 2016Dalian网络预选赛1010 / HDU 5877 (dfs序+划分树)
- Jsoup解析Html之常用方法
- web service wsdl详解
- 两种开源数据库连接池的使用
- Storm实战演练:WordCont
- 低频信号为什么难以传输?