描述
给定一系列的会议时间间隔,包括起始和结束时间[[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;
}
};