插入区间之非合并区间的思路 leetcode57
输入: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相关推荐
- 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间
本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...
- LeetCode 55跳跃游戏56合并区间57插入区间
原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...
- LeetCode 57. 插入区间(合并区间+排序)(区间重叠问题汇总)
题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: interval ...
- 合并区间 · Merge Intervals 插入区间 · Insert Interval
[抄题]: 给出若干闭合区间,合并所有重叠的部分. 给出的区间列表 => 合并后的区间列表: [ [[1, 3], [1, 6],[2, 6], => [8, 10],[8, 10], [ ...
- 合并区间(LintCode)
合并区间 给出若干闭合区间,合并所有重叠的部分. 样例 给出的区间列表 => 合并后的区间列表: [ [[1, 3], [1, 6],[2, 6], => [8, 10],[8, 10], ...
- 文巾解题 56. 合并区间
1 题目描述 2 解题思路 先将intervals按照开始的时间从小到大排序,然后我们建立一个记录结果的数组,和另一个表示当前区间的临时区间,然后对intervals从前向后遍历. 如果当前遍历的in ...
- python 合并区间
| 合并区间 以数组 intervals 表示若干个区间的集合, 其中单个区间为 intervals[i] = [starti, endi] . 请你合并所有重叠的区间,并返回一个不重叠的区间数组, ...
- mysql合并到区间_合并区间
LC 合并区间 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[ ...
- 56. 合并区间 golang
56. 合并区间 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: ...
最新文章
- linux 脚本 ,shell中的与
- 常用汉字的unicode 编码
- 北京招聘 | 新浪微博机器学习部门招聘推荐算法开发实习生
- BitBlt和StretchBlt的区别
- 给thinkphp加个分页样式
- Apache不记录制定文件类型日志
- Thymeleaf Error resolving template [index],template might not exist or might not be accessible
- anywhere执行时端口被占用Address already in use:8080解决方法
- MySQL数据库---(1)win10 免安装MySQL 教程
- zabbix mysql 平台_监控平台-zabbix
- StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】
- MessageQueue#next() 方法图解
- unity2D笔记-控制人物相关
- 怎么找回服务器开机密码,如果忘了 开机密码该怎么办
- Spring Data Jpa 复合主键
- 这个【vue】项目,让我明白了…
- 图片型-半图形封面设计
- ICCV2019 |论文阅读——SCRDet:Towards More Robust Detection for Small, Cluttered and Rotated Objects
- 对数字身份认证安全,是企业的责任还是个人的责任?
- 安防工程管理和运维对系统效能重要性
热门文章
- 白噪声校验matlab,白噪声的测试MATLAB程序.doc
- ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\ABC\AppData\Roaming\
- 硬件设计2---什么是电阻?
- 爬虫增加代理池:使用稳定第三方芝麻代理IP 教程(详细可用)
- 【Kernel】驱动开发学习之Platform平台总线模型
- 重磅报告!智能手表将如何颠覆媒体?
- mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
- 阿里云OSS域名配置及简单上传
- cgb2110-day02
- PDF怎么编辑修改内容?教你一招轻松搞定