class Solution {
public:
static bool cmp(Interval v1,Interval v2){
return v1.start <= v2.start;
}
vector<Interval> merge(vector<Interval> &intervals) {
vector<Interval> ans;
if(!intervals.size()) return ans;
sort(intervals.begin(), intervals.end(), cmp); // 按start 排序
ans.push_back(intervals[0]);
for(int i = 1; i < intervals.size(); i++){
if(intervals[i].start <= ans.back().end){
// 当intervals[i]与ans中最后一个区间中有重叠 ,不需要额外添加区间只需要更改ans最后区间的end值即可
ans.back().end = max(ans.back().end, intervals[i].end);
}
else{ // 没有重叠直接添加区间
ans.push_back(intervals[i]);
}
}
return ans;
}
};