ref http://www.cnblogs.com/springfor/p/3872332.html
1) 要先排序,按照start, 怎么写comparator是关键 class IntervalComparator implements Comparator<Interval> {
2) 然后按照end 在主程序里merge,
public class Solution {
// ref http://www.cnblogs.com/springfor/p/3872332.html
public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
if(intervals==null || intervals.size()<=1) return intervals;
Collections.sort(intervals, new IntervalsComparator());
ArrayList<Interval> res = new ArrayList<Interval>();
Interval pre = intervals.get(0);
for(int i=0; i< intervals.size(); i++){
Interval cur = intervals.get(i);
if(pre.end>=cur.start){ // == 也要考虑哟
Interval merged = new Interval(pre.start, Math.max(pre.end, cur.end));
pre = merged;
}else{
res.add(pre);
pre = cur;
}
}
res.add(pre); // 不要忘了最后一个pre
return res;
}
class IntervalsComparator implements Comparator<Interval>{// class IntervalComparator implements Comparator<Interval> {
public int compare(Interval i1, Interval i2){
return i1.start- i2.start;
}
}
}