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. 插入区间相关推荐

  1. LeetCode-笔记-57.插入区间

    LeetCode-笔记-57.插入区间 1.题目 给你一个 无重叠的 ,按照区间起始端点排序的区间列表.在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间) ...

  2. int类型年月怎么区间查询_LeetCode 力扣官方题解 | 57.插入区间

    点击上方蓝字设为星标 下面开始今天的学习-力扣  57. 插入区间(点击文末阅读原文查看题目)题目描述给出一个无重叠的 ,按照区间起始端点排序的区间列表.在列表中插入一个新的区间,你需要确保列表中的区 ...

  3. Python描述 LeetCode 57. 插入区间

    Python描述 LeetCode 57. 插入区间   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.py ...

  4. leetcode 57. 插入区间 58. 最后一个单词的长度

    leetcode 57. 插入区间 58. 最后一个单词的长度 57. 插入区间 难度中等512收藏分享切换为英文接收动态反馈 给你一个 无重叠的 *,*按照区间起始端点排序的区间列表. 在列表中插入 ...

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

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

  6. leetcode 57. 插入区间

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

  7. LeetCode 57. 插入区间(一次遍历)

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

  8. LeetCode 57. 插入区间(python、c++)

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

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

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

最新文章

  1. linux桥接实现交换机功能
  2. 计算机在财务核算中的应用,浅谈计算机在财务核算和财务管理工作中的辅助应用...
  3. [python学习] 专题九.Mysql数据库编程基础知识
  4. [导入]ASP.NET 配置节架构
  5. ImportError: No module named urllib2
  6. 水平面天文辐射网络模拟(基于ArcGIS)
  7. win10硬盘分区怎么分
  8. 一个简单帆软报表制作基础步骤
  9. java stack长度_Java Stack size()用法及代码示例
  10. 认知突围_移动应用:突围
  11. 色盲悖论_关于被色盲
  12. 文本内容相似度计算方法:simhash
  13. window10企业版永久密钥激活
  14. Neil Young:谈游戏ARPDAU及榜单排名意义
  15. 搭建个人图床【阿里云OSS+PicGo】
  16. Golang深入理解GPM模型
  17. 【AI白身境】计算机视觉都有哪些研究方向
  18. div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程
  19. 《口吃者的自我治疗》(10. 承认自己口吃)
  20. JAVA加密解密之消息认证码算法(Message Authentication Code,MAC)

热门文章

  1. 开启协程_「科普」什么是协程?
  2. 现在有一个map集合如下: Map<Integer,String> map = new HashMap<Integer, String>(); map.put(1, “
  3. go 查看全局安装了哪些包_如何用 GVM 管理 Go 项目
  4. 信息学奥赛C++语言: 回文数个数
  5. 信息学奥赛C++语言:由大到小输出1~100的整数
  6. 题解 AT5258 【[ABC156A] Beginner】
  7. CSP-S/J2019认证相关内容
  8. 字符串数组的排序c++_Java——数组相关知识点及练习演绎
  9. node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器
  10. opencv 手册_有兴趣吗?程序员分手手册,教你如何恢复单身