题目链接:
LeetCode 57 — Insert Interval
AC代码:
public class Problem57 {
public static void main(String[] args) {
List <Interval> list =new ArrayList<Interval>();
list.add(new Interval(0,2));
list.add(new Interval(3,9));
insert(list, new Interval(6,8));
}
public static List<Interval> insert(List<Interval> intervals, Interval newInterval) {
int p=0;
if(intervals.size()==0){
intervals.add(newInterval);
return intervals;
}
for(int i=0;i<intervals.size();i++){
if(intervals.get(i).start>=newInterval.start){
intervals.add(i, newInterval);
if(i-1>=0) p=i-1;
else p=i;
break;
}
else{
if(i==intervals.size()-1){
intervals.add(newInterval);
if(i-1>=0) p=i-1;
else p=i;
break;
}
else
continue;
}
}
int i=p;
int num=0;
while(true){
if(i+1>=intervals.size()) break;
else{
if(intervals.get(i+1).start>intervals.get(i).end){
num++;
if(num==2)
return intervals;
i++;
}
else if(intervals.get(i+1).start==intervals.get(i).end){
intervals.get(i).end=intervals.get(i+1).end;
intervals.remove(i+1);
num=0;
continue;
}
else{
if(intervals.get(i+1).end>=intervals.get(i).end){
intervals.get(i).end=intervals.get(i+1).end;
intervals.remove(i+1);
num=0;
continue;
}
else{
intervals.remove(i+1);
num=0;
}
}
}
}
return intervals;
}
}