题目描述
思路分析
T56区间合并的应用
分三部分:
1.有交集之前的区间,直接加入;
2.有交集的区间,合并并加入;
3.有交集之后的区间,直接加入;
注意一些边界问题,不如【【1,3】】和【0,0】这种数据。算法不健壮的话很容易被坑。
代码实现
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& a, vector<int>& b) {
vector<vector<int>> res;
int k = 0;
while (k < a.size() && a[k][1] < b[0]) res.push_back(a[k ++ ]);
if (k < a.size()) {
b[0] = min(b[0], a[k][0]);
while (k < a.size() && a[k][0] <= b[1]) b[1] = max(b[1], a[k ++ ][1]);
}
res.push_back(b);
while (k < a.size()) res.push_back(a[k ++ ]);
return res;
}
};