题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200925143153135.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTY5MzU1,size_16,color_FFFFFF,t_70#pic_center)
解题思路
- 对乱序数组进行排序,变为升序数组。方便后面进行查找
- 先定义一个i指向起始位置,并保存i指向的数值大小
- 从i的下一个指向j开始遍历,找到不满足条件的区间
- 合并区间,并将i跳到j的位置
代码
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> merge(vector<vector<int>>& intervals);
sort(intervals.begin(), intervals.end());
vector<vector<int>> ans;
for (int i = 0; i < intervals.size();) {
int t = intervals[i][1];
int j = i + 1;
while (j < intervals.size() && intervals[j][0] <= t) {
t = max(t, intervals[j][1]);
j++;
}
ans.push_back({ intervals[i][0], t });
i = j;
}
return ans;
}
};