题链:https://leetcode-cn.com/problems/insert-interval/
思路:先遍历一遍找到与新插入区间有交集的区间的起始坐标和终止坐标,然后将他们变成一个区间即可。
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& in, vector<int>& ne) {
int n = in.size(),st=-1,en;
vector<vector<int>> ans;
for(int i=0;i<n;i++){
if((in[i][0]<=ne[0]&&ne[0]<=in[i][1]) || (ne[0]<=in[i][0]&&in[i][1]<=ne[1]) || (in[i][0]<=ne[1]&&ne[1]<=in[i][1]) ){
if(st==-1) st=i,en=i;
else en=i;
}
}
if(st==-1){
int i;
for(i=0;i<n;i++)
if(in[i][1]<ne[0])
ans.push_back(in[i]);
else break;
ans.push_back(ne);
for(;i<n;i++)
ans.push_back(in[i]);
}else{
for(int i=0;i<st;i++) ans.push_back(in[i]);
vector<int> temp;
temp.push_back(min(ne[0],in[st][0]));
temp.push_back(max(ne[1],in[en][1]));
ans.push_back(temp);
for(int i=en+1;i<n;i++) ans.push_back(in[i]);
}
return ans;
}
};