Leetcode之Merge Intervals 问题

问题描述:

Given a collection of intervals, merge all overlapping intervals.

For example,
Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].

问题来源:Merge Intervals (详细地址:https://leetcode.com/problems/merge-intervals/description/)

思路分析:这道题好像和Insert Interval 很相像,确实是这样的,两道题的思路都是差不多的,但是也有区别,Insert Interval 都是按照start值排好序的,所以为了向它靠拢,我们也可以首先按照start值大小排序,在这我们按照java8的新特性(lambda函数式编程),直接一行代码就解决了;接着二者的联系是:我们可以先固定住一个Interval,然后遍历其中的每一个interval(相当于Insert Interval中的new inerval),比较它们每一个有没有交集就可以得到答案了。当然,在这还有一点需要记住:最后一步必须将最后一个interval添加进去!比如上面例子的[15,18],我们比较完发现10<15,所以将前面一个([8,10])添加进去了,重新指定了start=15,end=18,后面没有可以比较的了,所以记得最后把它添加上。

代码:

第一部分:interval的定义(题目给的):

第二部分:一个一个插入的过程:








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值