C++实现:
class Solution {//数组+排序
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
intervals.push_back(newInterval);//将新区间添加到列表中
sort(intervals.begin(),intervals.end());//根据区间左端点值排序
vector<vector<int>> res{intervals[0]};//声明返回值,并初始化
for(int i=1;i<intervals.size();i++){
if(res.back()[1] >= intervals[i][0]){//比较res中最后一个区间的右端点大于等于intervals中第i个区间的左端点,有交集
res.back()[1] = max(intervals[i][1],res.back()[1]);//有交集的时候,res.back()的右端点取二值的较大值
}
else{//否则无交集,直接将第i个区间添加到返回变量中
res.push_back(intervals[i]);
}
}
return res;
}
};