这个题的intervals已经sorted
步骤是 先把前面end < newInterval.start插入 然后将所有中间的弄成一个 再把后面的加上去
/**
* 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; }
* }
*/
public class Solution {
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
List<Interval> res = new LinkedList<Interval> ();
int i = 0;
while ( i < intervals.size() && intervals.get(i).end < newInterval.start ){
res.add ( intervals.get(i) );
i ++;
}
int start = newInterval.start;
int end = newInterval.end;
while ( i < intervals.size() && intervals.get(i).start <= newInterval.end ){
start = Math.min( intervals.get(i).start, start );
end = Math.max ( intervals.get(i).end, end );
i ++;
}
Interval inter = new Interval ( start, end );
res.add ( inter );
while ( i < intervals.size() ){
res.add ( intervals.get(i) );
i ++;
}
return res;
}
}