实现思路:先排序,然后循环遍历,挨着和前面的比
- 如果出现的当前组的
end
比下一组的start
大,则返回false
- 如果循环正常结束,则没有问题,返回
true
举例说明:[[0,10],[10,20],[15,30]]
- 其中[0,10]是第一组,0为第一组的start,10为第一组的end
- 第二组:[10,20], start: 10, end: 20
- 第三组:[15,30],start: 15, end: 30
循环到第二组时会发现,第二组的end大于第三组的start,返回false
c++实现
class Solution {
public:
bool hostschedule(vector<vector<int> >& schedule) {
// write code here
sort(schedule.begin(), schedule.end());
for(int i=0; i<schedule.size()-1; i++){
if(schedule[i][1] > schedule[i+1][0]){
return false;
}
}
return true;
}
};
python实现
class Solution:
def hostschedule(self , schedule: List[List[int]]) -> bool:
# write code here
schedule.sort()
for i in range(len(schedule)-1):
if schedule[i][1] > schedule[i+1][0]:
return False
return True