Merge Intervals

怎么写comparator是要会的

public class Solution {
    public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
        if(intervals==null || intervals.size()<2) return intervals;
        ArrayList<Interval> res = new ArrayList<Interval>();
        Collections.sort(intervals, new intervalComparator());
        Interval pre= intervals.get(0);
        for(int i=1; i< intervals.size(); i++){
            Interval cur = intervals.get(i);
            if(cur.start<=pre.end){
                Interval merged  =  new Interval(pre.start, Math.max(pre.end, cur.end));
                pre = merged;
            }else{
                res.add(pre);
                pre = cur;
            }
        }
        res.add(pre); // donnot forget
        return res;
    }
    class intervalComparator implements Comparator<Interval>{
        public int compare(Interval i1, Interval i2){
            return i1.start-i2.start;
        }
    }
}

 

posted @ 2015-04-15 00:49  世界到处都是小星星  阅读(138)  评论(0编辑  收藏  举报