区间左端点进行排序
如果intervals小于等于一个元素直接返回
如果大于1个
按照左边点进行排序
从左至右依次合并
class Solution {
public:
static bool cmp(vector<int>&a,vector<int>&b){
return a[0] < b[0];
}
bool ischong(vector<int>&a,vector<int>&b){
if(a[0] > b[1] || b[0] > a[1]){
return false;
}else{
return true;
}
return false;
}
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> ret;
if( intervals.size()==0 ){
return ret;
}
sort(intervals.begin(),intervals.end(),cmp);
ret.push_back( intervals[0] );
for(int i = 1;i < intervals.size();i ++){
if( ischong( ret.back(),intervals[i] ) ){
ret[ ret.size()-1 ][1] = max(ret[ ret.size()-1 ][1],intervals[i][1]);
}else{
ret.push_back( intervals[i] );
}
}
return ret;
}
};