LeetCode 56. 合并区间
原题链接
中等
作者:
nullwh
,
2020-10-11 15:33:39
,
所有人可见
,
阅读 323
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 l = intervals[0][0], r = intervals[0][1];//第一个区间的左右端点
for (int i = 1; i < intervals.size(); i++) {//从第二个区间开始比较
if (intervals[i][0] > r) {//左端点大于前一个区间的右端点,说明没有交集,直接保存
res.push_back({l, r});
l = intervals[i][0], r = intervals[i][1];//更新一下区间,往后移
}
else r = max(r, intervals[i][1]);//有交集,更新右端点
}
res.push_back({l, r});//最后一个区间记得更新进来
return res;
}
};