LeetCode 252. Meeting Rooms (会议室)$
Given an array of meeting time intervals consisting of start and end times?[[s1,e1],[s2,e2],...]?(si?< ei), determine if a person could attend all meetings.
For example,
Given?[[0, 30],[5, 10],[15, 20]],
return?false.
?
?
題目標簽:sort
這道題目給了我們一個array的會議時間,讓我們判斷是否能夠參加所有的會議。每一個會議時間都有start 和 end。只要把array 重新排序一下,按照start從小到大。之后遍歷每一個會議時間,如果這個會議時間的end 大于 下一個會議時間的start,就判斷false。
起初自己寫了一個n^n 的sort,通過后發現速度賊慢,只好重新研究其他人的做法。可以利用Arrays.sort 來直接sort我們的intervals, 但是需要結合comparator。之前都有用Arrays.sort, 但是對于這樣的object array就沒想到,而且也不會用comparator。順便稍微調查了一下,Arrays.sort 是用兩種排序方法, 1- 快速排序, 2-優化的合并排序。 快速排序主要運用于基本類型(int, short...), 合并排序用于對象類型。兩種排序都是O(n logn)。對于object的Arrays.sort,需要override一個compare function, a - b就是ascending排序,從小到大; b - a 就是descending排序。
?
Java Solution:
Runtime beats 75.89%?
完成日期:06/24/2017
關鍵詞:Sort
關鍵點:如何用Arrays.sort 和 Comparator
?
?
?
1 /** 2 * Definition for an interval. 3 * public class Interval { 4 * int start; 5 * int end; 6 * Interval() { start = 0; end = 0; } 7 * Interval(int s, int e) { start = s; end = e; } 8 * } 9 */ 10 public class Solution 11 { 12 public boolean canAttendMeetings(Interval[] intervals) 13 { 14 // step 1: sort the intervals 15 Arrays.sort(intervals, new Comparator<Interval>(){ 16 public int compare(Interval a, Interval b) 17 { 18 return a.start - b.start; 19 } 20 }); 21 22 // step 2: iterate intervals to check each end is <= next start 23 for(int i=0; i<intervals.length-1; i++) 24 { 25 if(i+1 <intervals.length) 26 { 27 if(intervals[i].start == intervals[i+1].start) 28 return false; 29 if(intervals[i].end > intervals[i+1].start) 30 return false; 31 } 32 } 33 34 return true; 35 } 36 }?
參考資料:?
 * http://www.programcreek.com/2014/07/leetcode-meeting-rooms-java/
 * http://blog.csdn.net/lian47810925/article/details/4689323
 * http://www.importnew.com/8952.html
?
LeetCode 算法題目列表 -?LeetCode Algorithms Questions List
轉載于:https://www.cnblogs.com/jimmycheng/p/7076019.html
總結
以上是生活随笔為你收集整理的LeetCode 252. Meeting Rooms (会议室)$的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 解决微信插件wxparse图片大小不能改
 - 下一篇: 计算机无线网络无法连接网络,笔记本连无线