- 区间问题
本题中的区间已经按照起始端点升序排列,因此直接遍历区间列表,寻找新区间的插入位置即可。
- 找到插入区间需要插入或者合并的 位置
- 合并区间
- 直接合并
- 直接插入
- 处理合并后的区间
class Solution
{
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval)
{
vector<vector<int>> res;
int index = 0;
while(index < intervals.size() && intervals[index][1] < newInterval[0])
{
res.push_back(intervals[index++]);
}
while(index < intervals.size() && newInterval[1] >= intervals[index][0])
{
newInterval[0] = min(intervals[index][0], newInterval[0]);
newInterval[1] = max(intervals[index][1], newInterval[1]);
++index;
}
res.push_back(newInterval);
while(index < intervals.size())
{
res.push_back(intervals[index++]);
}
return res;
}
};