class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end());
vector<vector<int> > answer;
vector<int> now = intervals[0];
for(int i=1;i<intervals.size();i++){
if(intervals[i][0]>=now[0]&&intervals[i][0]<=now[1]){
now[1] = intervals[i][1]>now[1]?intervals[i][1]:now[1];
}
else{
answer.push_back(now);
now = intervals[i];
}
}
answer.push_back(now);
return answer;
}
};
先排序,然后依次遍历,定一个now,记录当前最大区间,如果新元素与区间有覆盖,则加入now,如果无覆盖,则将now加入结果,并且新的now记录为该新元素,继续遍历。