题目
插入区间
代码
public class Solution {
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
List<Interval> ans = new ArrayList<Interval>();
for(int i =0;i<intervals.size();i++){
Interval cur = intervals.get(i);
if(newInterval.start > cur.start){
if(newInterval.start > cur.end){
ans.add(cur);
}
else{
newInterval = new Interval(cur.start, Math.max(newInterval.end,cur.end));
}
}
else{
if(newInterval.end < cur.start){
ans.add(newInterval);
newInterval = cur;
}
else{
newInterval = new Interval(newInterval.start,Math.max(newInterval.end,cur.end));
}
}
}
ans.add(newInterval);
return ans;
}
}
思路
1 想象重新构建一个list 每次原list的每个区间和新的区间比较
2 比较的关键都是start。一共4种情况,画图就出来了。