Given a collection of intervals, merge all overlapping intervals.app
Example 1:ide
Input: [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6]. Example 2:code
Input: [[1,4],[4,5]] Output: [[1,5]] Explanation: Intervals [1,4] and [4,5] are considered overlapping.get
/** * 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; } * } */ class Solution { public List<Interval> merge(List<Interval> intervals) { Collections.sort(intervals,new Comparator<Interval>(){ public int compare(Interval int1,Interval int2){ return int1.start - int2.start ; } }); if(intervals.size()<2) return intervals; List<Interval> res = new ArrayList<Interval>(); Interval inte = intervals.get(0); for(int i = 0 ;i<intervals.size();i++){ Interval temp = intervals.get(i); if(inte.end>=temp.start){ inte.end = Math.max(inte.end,temp.end); }else { res.add(inte); inte = temp; } } res.add(inte); return res; } }