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]
.
/*** Definition for a interval. * public class Interval {* int start; * int end; * Interval () {start = 0; end = 0; } * Interval (int s, int e) {start = s; end = e;} }*/ Public classSolution { PublicList<interval> Merge (list<interval>intervals) { //With the same idea as insert Interval, but the first to sort out, using the Java collections.sort (list<interval> List, comparator< Super interval> C)//I need to implement a comparator compare method .//pay attention to the way compare is implemented!! //because it is already queued and is traversed from the beginning, there is no case of the later traversal before temp, so the comment section is optionalList<interval> res=NewArraylist<interval>(); if(Intervals.size () <1)returnRes; Collections.sort (intervals,NewIntervalcom ());///Interval Temp=intervals.get (0); for(intI=1;i<intervals.size (); i++) {Interval cur=Intervals.get (i); /*if (cur.end<temp.start) {//res.add (cur); }else{*/ if(cur.start>temp.end) {Res.add (temp); Temp=cur; }Else{ intstart=math.min (Temp.start,cur.start); intEnd=Math.max (temp.end,cur.end); Temp=NewInterval (start,end); } //}} res.add (temp); returnRes; } Public classIntervalcomImplementscomparator<interval>{//// Public intCompare (Interval o1,interval O2) {returno1.start-O2.start; } }}
[Leedcode] Merge intervals