最后一个元素的处理是关键,要记得移动完成后加上去
public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
// 跟之前那道题一样嘛 不要那么麻烦http://www.cnblogs.com/springfor/p/3872333.html
ArrayList<Interval> res = new ArrayList<Interval>();
for(Interval cur : intervals){
if(cur.end<newInterval.start){ // newInterval 前面的全加进去
res.add(cur);
}else if(cur.start> newInterval.end){ // newInterval 后面的要往后挪着加,不断把cur变成新newInterval
res.add(newInterval);
newInterval = cur;
continue;
}else if(cur.end >= newInterval.start || cur.start <= newInterval.end){// merge
int st = Math.min(cur.start, newInterval.start);
int ed = Math.max(cur.end, newInterval.end);
newInterval = new Interval(st,ed);
}
}
res.add(newInterval); // 关键,挪到最后一位,要把最后一位加进去!
return res;
}
}