题目描述:
给出一个区间的集合,请合并所有重叠的区间;
题目解析:
本题考察简单的数据排序知识点。
class Solution{
public:
vector<vector<int>> merge(vector<vector<int>>& intervals){
vector<vector<int>> res; //作为返回结果
if(intervals.empty()) return res;
sort(intervals.begin(),intervals.end()); //按照区间的左边界来进行排序
int index=0;
res.push_back(intervals[0]); //先将第一个区间放入缓存结果中
for(int i=1;i<intervals.size();i++)//遍历所有的区间
{
if(res[index][1]>=intervals[i][0]) //表示res[1]中的右区间比待求解的左区间大
{
if(res[index][1]<intervals[i][1])
res[index][1] = intervals[i][1]; //这个表明需要扩展右区间
}
else
{
index++;
res.push_back(intervals[i]); //表示该区间是一个独立的无重叠的
}
}
return res;
}
};