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

示例 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] 可被视为重叠区间。

思路:先给每行数按照第一个数字排序

之后遍历,如果nums[i][0]<=nums[i+1][0]&&nums[i][1]>=nums[i+1][1],说明两个数组可以合并,否则把nums[i][0],nums[i][1]加入要输出的区间,之后把i+1设为新的标志,开始比较

提交的代码:

class Solution {

public int[][] merge(int[][] intervals) {

if (intervals == null || intervals.length == 0) {

return intervals;

}

Arrays.sort(intervals, new Comparator<int[]>() {

public int compare(int[] o1, int[] o2) {

if (o1[0] == o2[0]) {

return o1[1] - o2[1];

}

return o1[0] - o2[0];

}

});

int a=intervals[0][0],b=intervals[0][1];

int nums[][] = new int[intervals.length][2];

if(intervals.length==1)

{

return intervals;

}

int k=0;

//System.out.println(a+" "+b);

for(int i=1;i<intervals.length;i++)

{

if(intervals[i][0]>=a&&b>=intervals[i][0])

{

b = Math.max(b, intervals[i][1]);

}

else

{

nums[k][0] = a;

nums[k][1] = b;

k++;

a = intervals[i][0];

b = intervals[i][1];

}

nums[k][0] = a;

nums[k][1] = b;

//System.out.println(a+" "+b);

}

int n[][] = new int[k+1][2];

for(int i=0;i<=k;i++)

{

n[i][0] = nums[i][0];

n[i][1] = nums[i][1];

}

return n;

}

}

Leetcode--56. 合并区间相关推荐

  1. leetcode 56. 合并区间

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

  2. LeetCode 56 合并区间

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

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

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

  4. leetcode - 56. 合并区间

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

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

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

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

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

  7. 56. 合并区间 排序数组

    https://www.b2bchain.cn/6393.html 56. 合并区间首先对开始元素进行排序 之后比较结尾元素判断是否可以加入合并集合//给出一个区间的集合,请合并所有重叠的区间. // ...

  8. 56. 合并区间 golang

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

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

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

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

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

最新文章

  1. 汉语科技术语识别实验结果
  2. ubuntu修改gcc版本
  3. 二:Go编程语言规范-类型
  4. Laravel核心解读 -- 事件系统
  5. pygame为游戏添加背景_用 Python 制作飞机大战小游戏
  6. 按位与、按位或、按位异或、左移、右移运算符的简单介绍(部分二进制运算符的简单介绍)...
  7. servlet的请求转发与重定向
  8. lua学习 第二章数据与标准库
  9. 遥感影像数据下载网址
  10. Zigbee和wifi信道设置避免同频干扰
  11. ka电器表示什么意思_电路中FU、KM、KA、KT、KV、SA、FR和SB分别是什么电器元件的文字符号?...
  12. 了解卡尔曼滤波器2--最优状态估计
  13. 3dsmax展uv_3dsmax展uv是啥玩意
  14. JDK8新特性-Lambda
  15. ttl低电平接大电阻_电路中上拉、下拉电阻的作用及原理
  16. FPGA之VGA转HDMI之编码模块的编写
  17. iOS摸鱼周报 第二十四期
  18. 腾讯的web QQ接口
  19. linux系统硬盘数据恢复软件下载,11 款最棒的 Linux 数据恢复工具
  20. 果园机器人反思稿_《果园机器人》读后感

热门文章

  1. LeetCode 142. 环形链表 II(链表环的检测)
  2. mysql最左_Mysql最左原则
  3. elasticsearch 工作原理_【154期】面试官:你能说说 Elasticsearch 查询数据的工作原理是什么吗?...
  4. python中的类属性和实例属性
  5. 细说ReactiveCocoa的冷信号与热信号(二):为什么要区分冷热信号
  6. Android远程调试的探索与实现
  7. 消息中间件系列(六):什么是流量削峰?如何解决秒杀业务的削峰场景
  8. 如何关闭docker容器里的进程
  9. docker镜像打包save,载入load,启动run
  10. 推荐系统中的Embedding