【Leetcode】Merge intervals
来源:互联网 发布:java nio io 区别 编辑:程序博客网 时间:2024/06/01 09:01
【题目】
Given a collection ofintervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].
【思路】
思路就是,先对进来的这一个list 的inteval进行比较,排序,排序的时候要加入一个comparator,重写compare方法。
compare方法中,按start来排序。这样能保证排在前面的肯定是先开始的。
然后遍历以进发排序好的list, 对于每一个inteval, 和当期的范围进行比较,确定是扩大已有的范围,还是重新另辟范围 这两种情况。
1. 扩大已有范围:
新的End 比当前的end要大 prev.end < inter.end
2. 新的范围:
新的start 比当期的end 还要大,另辟一个新的interval.
【代码】
/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */public class Solution { public List<Interval> merge(List<Interval> intervals) { Collections.sort(intervals, new Comparator<Interval>(){ @Override public int compare(Interval obj0, Interval obj1) { return obj0.start - obj1.start; } }); List<Interval> ret = new ArrayList<>(); Interval prev = null; for (Interval inter : intervals) { if ( prev==null || inter.start>prev.end ) { ret.add(inter); prev = inter; } else if (inter.end>prev.end) { // Modify the element already in list prev.end = inter.end; } } return ret; }}
0 0
- LeetCode: Merge Intervals
- LeetCode Merge Intervals
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- leetcode 28: Merge Intervals
- Leetcode: Merge Intervals
- [LeetCode] Merge Intervals
- [LeetCode]Merge Intervals
- leetcode merge intervals
- [leetcode]Merge Intervals
- LeetCode-Merge Intervals
- [leetcode] Merge Intervals
- LeetCode - Merge Intervals
- 【leetcode】Merge Intervals
- leetcode Merge Intervals
- LeetCode Merge Intervals
- [LeetCode] Merge Intervals
- LeetCode | Merge Intervals
- android开发中调用手机的豌豆荚、应用宝等市场进行评分操作,以及分享功能
- C语言实现环形链表
- sgu-301. Boring. Hot. Summer...
- Monkey测试简介
- SSH---Spring减少配置量将公共的配置进行抽象
- 【Leetcode】Merge intervals
- epoll_create函数实现源码分析 http://blog.csdn.net/lmh12506/article/details/7556188
- hdu4300 Clairewd’s message(扩展KMP)
- Android 仿qq聊天界面之一
- ListView的一些使用方式
- No repository found at http://m2eclipse.sonatype.org/sites/m2e
- 背包问题
- sde执行revoke SELECT ANY TABLE from sde导致报ora-29900 运算符连接不存在错误
- 整数奇偶排序