Überlappungsintervalle zusammenführen

8

Frage: Gegeben einer Reihe von Zeitintervallen in beliebiger Reihenfolge, füge alle überlappenden Intervalle in eins zusammen und gebe das Ergebnis aus, das nur sich gegenseitig ausschließende Intervalle haben soll. Lassen Sie die Intervalle der Einfachheit halber als Ganzzahlpaare dargestellt werden. Zum Beispiel sei die gegebene Menge von Intervallen {{1,3}, {2,4}, {5,7}, {6,8}}. Die Intervalle {1,3} und {2,4} überlappen sich, so dass sie zusammengeführt werden und zu {1, 4} werden. Ähnlich sollten {5, 7} und {6, 8} zusammengelegt werden und {5, 8}

werden

Schreiben Sie eine Funktion, die die Menge der zusammengefügten Intervalle für die gegebene Menge von Intervallen erzeugt.

Mein Code:

%Vor%

Das sind die Fehler, die ich nach dem Kompilieren bekommen habe. Kann mir bitte jemand erklären, wie ich das beheben kann?

%Vor%     
coder101 28.07.2015, 08:15
quelle

4 Antworten

6

Ideone.java:

%Vor%
  • main Methode ist innerhalb der public class Ideone
  • Interval und IntervalComparator sind nur innere Klassen

Ausgabe:

%Vor%     
Gosu 28.07.2015, 08:36
quelle
3

Hier ist Ihr verfeinerter Code:

%Vor%

Und nenne diese Java-Datei "Ideone.java"

    
Yurii 28.07.2015 08:29
quelle
1

Meine Implementierung mit BST. O (logn) zum Zusammenführen: Inorder traversal gibt Ihnen aktualisierte Intervalle.

%Vor%     
Jay 30.03.2017 02:16
quelle
0

Ich würde die Merge-Methode lieber so setzen:

%Vor%     
RIPAN 15.02.2017 18:00
quelle