package com.interview.books.leetcodeoj;
import com.interview.leetcode.utils.Interval;
import java.util.Iterator;
import java.util.List;
/**
* Created_By: stefanie
* Date: 14-12-23
* Time: 上午10:39
*/
public class LOJ57_InsertInterval {
//mark overlapped interval to newInterval, and remove overlapped one in intervals.
//use Iterator to enable remove during scan
//check index == intervals.size(), in this case intervals.add(newInterval), other's intervals.add(index, newInterval);
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
Iterator<Interval> iterator = intervals.iterator();
int index = 0;
while(iterator.hasNext()){
Interval current = iterator.next();
if(current.end < newInterval.start){
index++;
} else if(current.start > newInterval.end){
break;
} else {
newInterval.start = Math.min(newInterval.start, current.start);
newInterval.end = Math.max(newInterval.end, current.end);
iterator.remove();
}
}
if(index == intervals.size()) intervals.add(newInterval);
else intervals.add(index, newInterval);
return intervals;
}
}