# 57. 插入区间
57. 插入区间
给你一个 无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
示例 1:
输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]
示例 2:
输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]
解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
示例 3:
输入:intervals = [], newInterval = [5,7]
输出:[[5,7]]
示例 4:
输入:intervals = [[1,5]], newInterval = [2,3]
输出:[[1,5]]
示例 5:
输入:intervals = [[1,5]], newInterval = [2,7]
输出:[[1,7]]
提示:
0 <= intervals.length <= 104
intervals[i].length == 2
0 <= intervals[i][0] <= intervals[i][1] <= 105
intervals 根据 intervals[i][0] 按 升序 排列
newInterval.length == 2
0 <= newInterval[0] <= newInterval[1] <= 105
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/insert-interval
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
因为已有区间已排序,先判断是否重叠,不重叠有序的插入进去即可,重叠则需要将新区间与已有区间合并;
class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {List<int[]> temp = new ArrayList<>();boolean flag = false;for (int[] ints : intervals) {if (!flag && newInterval[0] <= ints[0]) {temp.add(newInterval);flag = true;}temp.add(ints);}if (!flag)temp.add(newInterval);int l = temp.get(0)[0], r = temp.get(0)[1];List<int[]> t = new ArrayList<>();for (int[] interval : temp) {if (interval[0] <= r) {r = Math.max(r, interval[1]);} else {t.add(new int[]{l, r});l = interval[0];r = interval[1];}}t.add(new int[]{l, r});int[][] ans = new int[t.size()][2];for (int i=0; i<t.size(); i++)ans[i] = t.get(i);return ans;}
}
# 57. 插入区间相关推荐
- LeetCode-笔记-57.插入区间
LeetCode-笔记-57.插入区间 1.题目 给你一个 无重叠的 ,按照区间起始端点排序的区间列表.在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间) ...
- int类型年月怎么区间查询_LeetCode 力扣官方题解 | 57.插入区间
点击上方蓝字设为星标 下面开始今天的学习-力扣 57. 插入区间(点击文末阅读原文查看题目)题目描述给出一个无重叠的 ,按照区间起始端点排序的区间列表.在列表中插入一个新的区间,你需要确保列表中的区 ...
- Python描述 LeetCode 57. 插入区间
Python描述 LeetCode 57. 插入区间 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.py ...
- leetcode 57. 插入区间 58. 最后一个单词的长度
leetcode 57. 插入区间 58. 最后一个单词的长度 57. 插入区间 难度中等512收藏分享切换为英文接收动态反馈 给你一个 无重叠的 *,*按照区间起始端点排序的区间列表. 在列表中插入 ...
- LeetCode 55跳跃游戏56合并区间57插入区间
原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...
- leetcode 57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入:intervals = [[ ...
- LeetCode 57. 插入区间(一次遍历)
1. 题目 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: interva ...
- LeetCode 57. 插入区间(python、c++)
题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入:intervals ...
- LeetCode 57. 插入区间(合并区间+排序)(区间重叠问题汇总)
题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: interval ...
最新文章
- linux桥接实现交换机功能
- 计算机在财务核算中的应用,浅谈计算机在财务核算和财务管理工作中的辅助应用...
- [python学习] 专题九.Mysql数据库编程基础知识
- [导入]ASP.NET 配置节架构
- ImportError: No module named urllib2
- 水平面天文辐射网络模拟(基于ArcGIS)
- win10硬盘分区怎么分
- 一个简单帆软报表制作基础步骤
- java stack长度_Java Stack size()用法及代码示例
- 认知突围_移动应用:突围
- 色盲悖论_关于被色盲
- 文本内容相似度计算方法:simhash
- window10企业版永久密钥激活
- Neil Young:谈游戏ARPDAU及榜单排名意义
- 搭建个人图床【阿里云OSS+PicGo】
- Golang深入理解GPM模型
- 【AI白身境】计算机视觉都有哪些研究方向
- div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程
- 《口吃者的自我治疗》(10. 承认自己口吃)
- JAVA加密解密之消息认证码算法(Message Authentication Code,MAC)
热门文章
- 开启协程_「科普」什么是协程?
- 现在有一个map集合如下: Map<Integer,String> map = new HashMap<Integer, String>(); map.put(1, “
- go 查看全局安装了哪些包_如何用 GVM 管理 Go 项目
- 信息学奥赛C++语言: 回文数个数
- 信息学奥赛C++语言:由大到小输出1~100的整数
- 题解 AT5258 【[ABC156A] Beginner】
- CSP-S/J2019认证相关内容
- 字符串数组的排序c++_Java——数组相关知识点及练习演绎
- node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器
- opencv 手册_有兴趣吗?程序员分手手册,教你如何恢复单身