给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。TIME:O(N)SPACE:O(N)
 1 class Solution {
 2     public int[][] merge(int[][] intervals) {
 3         // 数据长度未达到合并操作要求
 4         if (intervals.length < 2)
 5             return intervals;
 6         //按二维数组第一位排序
 7         Arrays.sort(intervals, new Comparator<int[]>() {
 8             @Override
 9             public int compare(int[] o1, int[] o2) {
10                 return o1[0] - o2[0];
11             }
12         });
13         List<int[]> list = new ArrayList<>();
14         //合并区间,若区间不能合则前者加入list中
15         for (int i = 0; i < intervals.length - 1; i++) {
16             if (intervals[i + 1][0] <= intervals[i][1]) {
17                 intervals[i + 1][0] = intervals[i][0];
18                 intervals[i + 1][1] = Math.max(intervals[i + 1][1], intervals[i][1]);
19             } else {
20                 list.add(intervals[i]);
21             }
22         }
23         //最后的区间加入list中
24         list.add(intervals[intervals.length - 1]);
25         int[][] res = new int[list.size()][2];
26         for (int i = 0; i < list.size(); i++) {
27             res[i][0] = list.get(i)[0];
28             res[i][1] = list.get(i)[1];
29         }
30         return res;
31     }
32 }

2019-05-17 09:55:30

转载于:https://www.cnblogs.com/NPC-assange/p/10879749.html

LeetCode--056--合并区间(java)相关推荐

  1. 《LeetCode力扣练习》第56题 合并区间 Java

    <LeetCode力扣练习>第56题 合并区间 Java 一.资源 题目: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, ...

  2. leetcode 56. 合并区间

    leetcode 56. 合并区间 题目描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合并所有重叠的区间, ...

  3. LeetCode 56 合并区间

    56. 合并区间 难度中等1153收藏分享切换为英文接收动态反馈 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合 ...

  4. LeetCode 56. 合并区间(优先队列)

    文章目录 1. 题目信息 2. 解题 2.1 报错的答案 2.2 优先队列解题 1. 题目信息 给出一个区间的集合,请合并所有重叠的区间. 示例 1:输入: [[1,3],[2,6],[8,10],[ ...

  5. leetcode - 56. 合并区间

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

  6. Leetcode 56.合并区间 (每日一题 20210708)

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

  7. LeetCode 56. 合并区间(合并区间+排序)

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

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

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

  9. 《LeetCode力扣练习》第617题 合并二叉树 Java

    <LeetCode力扣练习>第617题 合并二叉树 Java 一.资源 题目: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些 ...

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

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

最新文章

  1. 基准分类模型、分类应用(多分类数字识别、疾病预测、欺诈检测)、监督学习总结
  2. 第104天:web字体图标使用方法
  3. 从Linux上查看接口路由IP(吓一跳ip)
  4. linux查看执行过的命令行,在Linux命令终端中查看和编辑曾执行过的命令 – LINUX笔记 – CFEI.NET...
  5. 详解Java动态代理机制
  6. java中的char类型所占空间
  7. 很有趣的一道题:找出有毒的瓶子
  8. 首都师范大学数学专业考研试题参考解答
  9. blender_(uv应用)................http://digitalman.blog.163.com/blog/static/23874605620174172058299/...
  10. java课设超市收银系统_超市收银系统java课程设计.doc
  11. 1273:【例9.17】货币系统
  12. 【idea】IntelliJ IDEA如何快速的定位数据库某张表在哪里调用---超详情!!!
  13. excel调查问卷的录入
  14. 图像形状及数量识别(matlab实现)
  15. 字节跳动自研线上引流回放系统的架构演进
  16. PS创建选区的工具-----快速选择和魔棒
  17. Python爬虫日记2——使用requests
  18. python切片是什么意思_python中的切片是什么?(实例解析)
  19. 做好这三步,你的小程序离“爆款”就不远了
  20. SQL Server | 设置默认值

热门文章

  1. Memcached的几种Java客户端(待实践)
  2. replace()替换文字
  3. 刘谦春晚再掀魔术热 网上木马趁火打劫
  4. 网页中加载flash的方法
  5. 电脑硬件知识大扫盲:CPU技术参数集锦
  6. 微软4月补丁星期二修复119个漏洞,含2个0day
  7. 详述近期遭利用的 Atlassian Confluence OGNL 注入漏洞 (CVE-2021-26084)
  8. 少有人挖但仍可获得奖金的10类Web 漏洞(下)
  9. 微软:确实存在另一枚 print spooler 0day,目前尚未修复
  10. Pwn2Own 2021温哥华黑客大赛落幕 3个团队并列 Master of Pwn