题目描述
相对而言不是很难,测试数据也没有很过分。
代码部分
class Solution
{
public:
vector<vector<int>> merge(vector<vector<int>>& intervals)
{
sort(intervals.begin(),intervals.end()); //先对区间排序
vector<vector<int>> v; //引入一个新的容器
for(int i = 0; i < intervals.size();)
{
int pre = intervals[i][1]; //当前区间最大值
int j = i + 1;
while(j < intervals.size() && intervals[j][0] <= pre) //若不是最后一个区间且与后面一个区间有重叠则合并
{
pre = max(pre,intervals[j][1]);
j++;
}
v.push_back({intervals[i][0],pre});
i = j;
}
return v;
}
};