博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode | 区间合并
阅读量:4489 次
发布时间:2019-06-08

本文共 1383 字,大约阅读时间需要 4 分钟。

题目

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

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

 

解题思路

  • 给出的区间集合不一定有序,所以需要先进行排序
  • 排序后建立新的链表,并尾插入原链表的第一个元素
  • 从原链表的第二个元素进行遍历,并与新链表的最后一个元素进行比较,如果有重合的区间,则更新新链表的最后一个元素,否则,直接插入遍历到的原链表的元素

 

代码实现

package MySolution;import java.util.Collections;import java.util.Comparator;import java.util.LinkedList;import java.util.List;public class Interval {    int start;    int end;    Interval() { start = 0; end = 0; }    Interval(int s, int e) { start = s; end = e; }}class Solution {    public List
merge(List
intervals) {
// 注意此处比较器接口的写法 Collections.sort(intervals, new Comparator
() { @Override public int compare(Interval o1, Interval o2) { if(o1.start
mergediIntervals=new LinkedList
();      // 对空表的处理(鲁棒性) if(intervals.isEmpty()) return mergediIntervals; mergediIntervals.add(intervals.get(0)); for(int i=1;i

 

代码注意事项

  • 先考虑对特殊情况的处理(List空)
  • 自定义排序模板:
    Collections.sort(list, new Comparator
    () { @Override public int compare(T o1, T o2) { // TODO Auto-generated method stub return 0; }});

     

转载于:https://www.cnblogs.com/ustctp/p/9046868.html

你可能感兴趣的文章
安全问题关注博客
查看>>
181101新闻:午后阳光下集思广益,课例研修尝试与挑战并存
查看>>
[Sdoi2013] 直径
查看>>
linux yum命令详解
查看>>
汇编语言笔记10-CALL和RET指令
查看>>
JavaScript不用临时变量交换两个变量的值的七种解决方案
查看>>
插入排序算法--Java实现
查看>>
android软键盘控制
查看>>
自定义LinkedList实现
查看>>
HDU 5306 线段树
查看>>
php输出json 对象{‘code’:200,'data':对象模式}
查看>>
springBean的生命周期
查看>>
【eclipse】启动不了报错java was started but returned exit code=13
查看>>
本地yum源 、阿里yum源、163yum源的配置安装
查看>>
codeforce 604B More Cowbell
查看>>
uvalive 3938 "Ray, Pass me the dishes!" 线段树 区间合并
查看>>
html中事件调用JavaScript函数时有return与没有return的区别
查看>>
[转帖]ASP.NET4中不要相信Request.Browser.Cookies,Form验证要用UseCookies
查看>>
Windows7中安装内存与可用内存不一致的解决办法
查看>>
HDU3065 AC自动机
查看>>