题目描述:
给你一个 无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
示例 1:
输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]
链接: https://leetcode-cn.com/problems/insert-interval/.
解题思路:
将Newinterval压入intervals,该题就变成了上一题合并重复子区间问题…
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>> result;
result.push_back(intervals[0]);
int n=intervals.size();
for(int i=1;i<n;++i){
if(result.back()[1]>=intervals[i][0]){
result.back()[1]=max(result.back()[1],intervals[i][1]);
}
else{
result.push_back(intervals[i]);
}
}
return result;
}
};