要求:无重叠有序区间数组加一个,合并
思路:分段处理
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
vector<vector<int>> res;
int n = intervals.size(), i =0;
// 小于部分
while(i < n && intervals[i][1] < newInterval[0]){
res.push_back(intervals[i]);
i++;
}
// 相交的部分
while(i < n && intervals[i][0] <= newInterval[1]){
newInterval[0] = min(intervals[i][0], newInterval[0]);
newInterval[1] = max(intervals[i][1], newInterval[1]);
i++;
}
res.push_back(newInterval);
// 大于的部分
while(i < n){
res.push_back(intervals[i]);
i++;
}
return res;
}
};