本文主要是介绍【LintCode】920.会议室,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
描述
给定一系列的会议时间间隔,包括起始和结束时间 [[s1,e1],[s2,e2],…(si < ei)
,确定一个人是否可以参加所有会议。
注意:(0,8),(8,10)在8这一时刻不冲突
样例
样例1
输入: intervals = [(0,30),(5,10),(15,20)]
输出: false
解释:
(0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突
样例2
输入: intervals = [(5,8),(9,15)]
输出: true
解释:
这两个时间段不会冲突
原题链接
920.会议室
思路
将所有会议按照会议的起始时间进行从小到大的排序,如果前一个会议的结束时间大于当前会议的起始时间,则两个会议时间冲突。
代码
/*** Definition of Interval:* class Interval {* public:* int start, end;* Interval(int start, int end) {* this->start = start;* this->end = end;* }* }*/class Solution {
private:static bool cmp(Interval &lhs, Interval &rhs) {return lhs.start < rhs.start;}
public:/*** @param intervals: an array of meeting time intervals* @return: if a person could attend all meetings*/bool canAttendMeetings(vector<Interval> &intervals) {sort(intervals.begin(), intervals.end(), cmp);for (int i = 1; i < intervals.size(); i++) {if (intervals[i - 1].end > intervals[i].start) {return false;}}return true;}
};
这篇关于【LintCode】920.会议室的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!