Merge Intervals
题目地址:
https://leetcode.com/problems/merge-intervals/#/description
题目:
解题思路:
这道题是每次从rst的list中拿最后一个,然后看看可不可以merge。
代码:
https://leetcode.com/problems/merge-intervals/#/description
题目:
Given a collection of intervals, merge all overlapping intervals.
For example,
Given
return
Given
[1,3],[2,6],[8,10],[15,18],return
[1,6],[8,10],[15,18].解题思路:
这道题是每次从rst的list中拿最后一个,然后看看可不可以merge。
代码:
public class MergeIntervals { class Interval{ int start; int end; public Interval(int start, int end){ this.start = start; this.end = end; } } public List<Interval> merge(List<Interval> intervals) { List<Interval> rst = new ArrayList<>(); if(intervals == null || intervals.size() == 0){ return rst; } // Collections.sort(intervals, new Comparator<Interval>(){// @Override// public int compare(Interval i1, Interval i2){// return i1.start - i2.start;// }// }); Collections.sort(intervals, (Interval i1, Interval i2) -> (i1.start - i2.start)); Interval interval = intervals.get(0); rst.add(interval); for(int i = 1; i <= intervals.size() - 1; i++){ Interval curr = rst.get(rst.size() - 1); Interval next = intervals.get(i); if(curr.end >= next.start){ curr.end = Math.max(curr.end, next.end); } else{ rst.add(next); } } return rst; } }

Comments
Post a Comment