[leetcode]Merge Intervals
2014-07-25 20:56
239 查看
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].
算法思路:
将intervals按照start进行排序,然后建立一个空的list,把intervals的元素逐个插入并做合并操作。
值得注意的是:如果intervals的待插入元素能与list的元素合并,则一定是与最后一个合并。think about it
【吐槽】:这是第一遍时候想到的算法,还是很不错的,单次遍历,只不过当时不会用Collections.sort()自己手动的排序了。o(╯□╰)o
/** * 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 { List<Interval> res = new ArrayList<Interval>(); public List<Interval> merge(List<Interval> intervals) { if(intervals == null || intervals.size() == 0) return res; Collections.sort(intervals, new Comparator<Interval>(){ public int compare(Interval a,Interval b){ return a.start - b.start; } }); List<Interval> list = new ArrayList<Interval>(); list.add(intervals.get(0)); for(int i = 1; i < intervals.size(); i++){ Interval last = list.get(list.size() - 1); Interval thus = intervals.get(i); if(thus.start <= last.end){ last.end = thus.end > last.end ? thus.end : last.end; }else{ list.add(thus); } } return list; } }
相关文章推荐
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- LeetCode Merge Intervals
- Leetcode 56 Merge Intervals
- [Leetcode]Merge Intervals
- 【leetcode】Merge Intervals(hard)
- LeetCode-Merge Intervals
- Leetcode -- Merge Intervals
- LeetCode_OJ【56】Merge Intervals
- leetcode -- Merge Intervals -- 典型trick
- 【Leetcode】Merge intervals
- leetcode: Merge Intervals
- 【LeetCode-面试算法经典-Java实现】【056-Merge Intervals(区间合并)】
- LeetCode 056-Merge Intervals
- Merge Intervals(LeetCode)
- LeetCode(56)Merge Intervals
- leetcode--Merge Intervals
- LeetCode(55) Merge Intervals
- LeetCode 97 Merge Intervals
- Leetcode--Merge Intervals