920. 会议室

描述

给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。

您在真实的面试中是否遇到过这个题?  

样例

给定区间=[[0,30],[5,10],[15,20]],返回false。

这道题关键在于排序,但是我依据西方哲学家的名言:不要重复发明轮子。而使用了sort函数。

/**
 * Definition of Interval:
 * classs Interval {
 *     int start, end;
 *     Interval(int start, int end) {
 *         this->start = start;
 *         this->end = end;
 *     }
 * }
 */

class Solution {
public:
    /**
     * @param intervals: an array of meeting time intervals
     * @return: if a person could attend all meetings
     */
    bool canAttendMeetings(vector<Interval> &intervals) {
        // Write your code here
        if(intervals.empty()||intervals.size()==1) return true;
        sort(intervals.begin(),intervals.end(),comp);
        int len=intervals.size();
        for(int i=1;i<len;++i){
            if(intervals[i].start<intervals[i-1].end) return false;
        }
    }
    
    bool static comp(const Interval &a,const Interval &b){
        return a.start<b.start;
    }
};

猜你喜欢

转载自blog.csdn.net/vestlee/article/details/80767591