首页 > 其他 > 详细

252. Meeting Rooms

时间:2015-12-02 12:19:22      阅读:238      评论:0      收藏:0      [点我收藏+]

题目:

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.

链接: http://leetcode.com/problems/meeting-rooms/

题解:

一开始以为是跟Course Schedule一样,仔细读完题目以后发现只要sort一下就可以了。写得还不够精简,需要好好研究一下Java8的lambda表达式。

Time Complexity - O(nlogn), Space Complexity - O(1)

/**
 * 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 boolean canAttendMeetings(Interval[] intervals) {
        if(intervals == null || intervals.length == 0)
            return true;
        Arrays.sort(intervals, new Comparator<Interval>(){
            public int compare(Interval t1, Interval t2) {
                if(t1.start != t2.start)
                    return t1.start - t2.start;
                else
                    return t1.end - t2.end;
            }
        });
        
        for(int i = 1; i < intervals.length; i++) {
            if(intervals[i].start < intervals[i - 1].end)
                return false;
        }
        
        return true;
    }
}

 

Reference:

https://leetcode.com/discuss/50912/ac-clean-java-solution 

252. Meeting Rooms

原文:http://www.cnblogs.com/yrbbest/p/5012310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!