Wyklucz nakładające się interwały
Mam dwie listy interwałów. Chciałbym usunąć cały czas z listy1, która już istnieje na liście2. Przykład: Lista1:
[(0,10), (15,20)]
Lista2:
[(2,3), (5,6)]
Wydajność:
[(0,2), (3,5), (6,10), (15,20)]
Jakieś wskazówki?
Próbowałem usunąć jeden interwał w tym czasie, ale wygląda na to, że muszę przyjąć inne podejście:
public List<Interval> removeOneTime(Interval interval, Interval remove){
List<Interval> removed = new LinkedList<Interval>();
Interval overlap = interval.getOverlap(remove);
if(overlap.getLength() > 0){
List<Interval> rms = interval.remove(overlap);
removed.addAll(rms);
}
return removed;
}