问题描述
给出一个区间的集合,请合并所有重叠的区间。
解题报告
按照区间的起始值进行排序,那么在这个排序的列表中可以合并的区间一定是连续的。
实现代码
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>>ans;
sort(intervals.begin(),intervals.end());
for(int i=0;i<intervals.size();i++){
vector<int>temp;
int max_=intervals[i][1];
temp.push_back(intervals[i][0]);
while(i<intervals.size()-1&&(max_>=intervals[i+1][0])){
max_=max(max_,intervals[i+1][1]);
i++;
}
temp.push_back(max_);
ans.push_back(temp);
}
return ans;
}
};