Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. public class Solution {
  2. public int minMeetingRooms(Interval[] intervals) {
  3. if(intervals == null || intervals.length == 0) return 0;
  4. Arrays.sort(intervals, new Comparator<Interval>(){
  5. public int compare(Interval i1, Interval i2){
  6. return i1.start - i2.start;
  7. }
  8. });
  9. // 用堆来管理房间的结束时间
  10. PriorityQueue<Integer> endTimes = new PriorityQueue<Integer>();
  11. endTimes.offer(intervals[0].end);
  12. for(int i = 1; i < intervals.length; i++){
  13. // 如果当前时间段的开始时间大于最早结束的时间,则可以更新这个最早的结束时间为当前时间段的结束时间,如果小于的话,就加入一个新的结束时间,表示新的房间
  14. if(intervals[i].start >= endTimes.peek()){
  15. endTimes.poll();
  16. }
  17. endTimes.offer(intervals[i].end);
  18. }
  19. // 有多少结束时间就有多少房间
  20. return endTimes.size();
  21. }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement