对于新插入的区间newInterval,原区间列表intervals可以分为三个部分:

  1. 左边与newInterval不重合的区间,这些区间直接加入结果数组中;
  2. 中间与newInterval重合的区间,我们需要更新newInterval的左右端点,使得左右端点分别为重合部分的最左和最右;
  3. 右边与newInterval不重合的区间,这些区间直接加入结果数组中。
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
vector<vector<int>> res;
int i = 0;
while(i < intervals.size() && intervals[i][1] < newInterval[0]) {
res.push_back(intervals[i]);
++i;
}
if(i < intervals.size()) {
newInterval[0] = min(newInterval[0], intervals[i][0]);
while(i < intervals.size() && intervals[i][0] <= newInterval[1]) {
newInterval[1] = max(newInterval[1], intervals[i][1]);
++i;
}
}
res.push_back(newInterval);
while(i < intervals.size()) {
res.push_back(intervals[i]);
++i;
}
return res;
}
};

最新文章

  1. css3 自定义字体的使用方法
  2. 关于Listview布局的一点经验
  3. 关于最近在做的一个js全屏轮播插件
  4. CentOS6.5系统软件仓库及挂载NTFS
  5. 10gR2-11gR1,11gR2如何干净的清除并重建OCR和表决磁盘
  6. UVA 11090 Going in Cycle!!(二分答案+判负环)
  7. 十,选择cfee编辑器并学会调试程序。以及结束语。
  8. windows设置临时环境变量path
  9. docker学习笔记17:Dockerfile 指令 ONBUILD介绍
  10. Jquery右击显示菜单事件,运用smartMenu插件。
  11. Socket编程实践(2) --Socket编程导引
  12. U盘被写保护不能重新格式化
  13. Flutter 获取控件尺寸和位置
  14. selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代
  15. Daily scrum 2015.10.19
  16. 在Windows下搭建基于nginx的视频直播和点播系统
  17. Android开发:《Gradle Recipes for Android》阅读笔记1.5
  18. 微信小程序里使用 Redux 状态管理
  19. C# SuperSocket服务端入门(一)
  20. 机器学习(七) PCA与梯度上升法 (下)

热门文章

  1. 本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
  2. Java实现 LeetCode 831 隐藏个人信息(暴力)
  3. Java实现 LeetCode 756 金字塔转换矩阵(DFS)
  4. Java实现 蓝桥杯VIP 算法提高 进制转换
  5. Java中lang包的常用方法介绍
  6. java实现第三届蓝桥杯机器人行走
  7. java实现第七届蓝桥杯四平方和
  8. window10下通过docker安装swoole,运行laravel-swoole服务
  9. 在CentOS7上源码安装OpenResty
  10. python+selenium识别图片验证码