Skip to content

Instantly share code, notes, and snippets.

@sopherwang
Created September 15, 2014 05:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sopherwang/be26bc4a3c38d6804ffe to your computer and use it in GitHub Desktop.
Save sopherwang/be26bc4a3c38d6804ffe to your computer and use it in GitHub Desktop.
Insert Interval
public List<Interval> insert(List<Interval> intervals, Interval newInterval)
{
if (intervals == null || newInterval == null)
{
return intervals;
}
if (intervals.size() == 0)
{
intervals.add(newInterval);
return intervals;
}
ListIterator<Interval> iterator = intervals.listIterator();
while (iterator.hasNext())
{
Interval item = iterator.next();
//before
if (newInterval.end < item.start)
{
iterator.previous();
iterator.add(newInterval);
return intervals;
}
else
{
if (newInterval.start > item.end)
{
continue;
}
else
{
newInterval.start = Math.min(newInterval.start, item.start);
newInterval.end = Math.max(newInterval.end, item.end);
iterator.remove();
}
}
}
intervals.add(newInterval);
return intervals;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment