Leetcode之Merge Intervals 问题

来源:互联网 发布:关键词大数据 编辑:程序博客网 时间:2024/05/29 17:11

问题描述:

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的定义(题目给的):

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








原创粉丝点击