输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]

开始的思路:

1)将待插入的区间插入到数组中
2)按照区间的第一个数排序
3)按照合并区间的思路去做

【超出5% …】

新的思路: 参考大佬的笔记写一个CPP版本

本题中的区间已经按照起始端点升序排列,因此我们直接遍历区间列表寻找新区间的插入位置即可。具体步骤如下:

  • 首先将新区间左边且相离的区间加入结果集(遍历时,如果当前区间的结束位置小于新区间的开始位置,说明当前区间在新区间的左边且相离);

  • 接着判断当前区间是否与新区间重叠,重叠的话就进行合并,直到遍历到当前区间在新区间的右边且相离,将最终合并后的新区间加入结果集;

  • 最后将新区间右边且相离的区间加入结果集。

vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {vector<vector<int>> res;int i = 0;//[[1,2],[3,5],[6,7],[8,10],[12,16]]  new = [4,8]while(i < intervals.size() && intervals[i][1] < newInterval[0]) {res.push_back(intervals[i++]);}//res = [ [1,2] ]while(i < intervals.size() && intervals[i][0] <= newInterval[1]) {newInterval[0] = min(intervals[i][0], newInterval[0]);newInterval[1] = max(intervals[i][1], newInterval[1]);i++;}res.push_back(newInterval);while(i < intervals.size()) {res.push_back(intervals[i++]);}return res;}

插入区间之非合并区间的思路 leetcode57相关推荐

  1. 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间

    本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...

  2. LeetCode 55跳跃游戏56合并区间57插入区间

    原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...

  3. LeetCode 57. 插入区间(合并区间+排序)(区间重叠问题汇总)

    题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: interval ...

  4. 合并区间 · Merge Intervals 插入区间 · Insert Interval

    [抄题]: 给出若干闭合区间,合并所有重叠的部分. 给出的区间列表 => 合并后的区间列表: [ [[1, 3], [1, 6],[2, 6], => [8, 10],[8, 10], [ ...

  5. 合并区间(LintCode)

    合并区间 给出若干闭合区间,合并所有重叠的部分. 样例 给出的区间列表 => 合并后的区间列表: [ [[1, 3], [1, 6],[2, 6], => [8, 10],[8, 10], ...

  6. 文巾解题 56. 合并区间

    1 题目描述 2 解题思路 先将intervals按照开始的时间从小到大排序,然后我们建立一个记录结果的数组,和另一个表示当前区间的临时区间,然后对intervals从前向后遍历. 如果当前遍历的in ...

  7. python 合并区间

    | 合并区间 以数组 intervals 表示若干个区间的集合, 其中单个区间为 intervals[i] = [starti, endi] . 请你合并所有重叠的区间,并返回一个不重叠的区间数组, ...

  8. mysql合并到区间_合并区间

    LC 合并区间 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[ ...

  9. 56. 合并区间 golang

    56. 合并区间 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: ...

最新文章

  1. linux 脚本 ,shell中的与
  2. 常用汉字的unicode 编码
  3. 北京招聘 | 新浪微博机器学习部门招聘推荐算法开发实习生
  4. BitBlt和StretchBlt的区别
  5. 给thinkphp加个分页样式
  6. Apache不记录制定文件类型日志
  7. Thymeleaf Error resolving template [index],template might not exist or might not be accessible
  8. anywhere执行时端口被占用Address already in use:8080解决方法
  9. MySQL数据库---(1)win10 免安装MySQL 教程
  10. zabbix mysql 平台_监控平台-zabbix
  11. StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】
  12. MessageQueue#next() 方法图解
  13. unity2D笔记-控制人物相关
  14. 怎么找回服务器开机密码,如果忘了 开机密码该怎么办
  15. Spring Data Jpa 复合主键
  16. 这个【vue】项目,让我明白了…
  17. 图片型-半图形封面设计
  18. ICCV2019 |论文阅读——SCRDet:Towards More Robust Detection for Small, Cluttered and Rotated Objects
  19. 对数字身份认证安全,是企业的责任还是个人的责任?
  20. 安防工程管理和运维对系统效能重要性

热门文章

  1. 白噪声校验matlab,白噪声的测试MATLAB程序.doc
  2. ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\ABC\AppData\Roaming\
  3. 硬件设计2---什么是电阻?
  4. 爬虫增加代理池:使用稳定第三方芝麻代理IP 教程(详细可用)
  5. 【Kernel】驱动开发学习之Platform平台总线模型
  6. 重磅报告!智能手表将如何颠覆媒体?
  7. mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
  8. 阿里云OSS域名配置及简单上传
  9. cgb2110-day02
  10. PDF怎么编辑修改内容?教你一招轻松搞定