Heim > Web-Frontend > js-Tutorial > LeetCode-Meditationen: Intervalle zusammenführen

LeetCode-Meditationen: Intervalle zusammenführen

Linda Hamilton
Freigeben: 2024-12-14 16:24:10
Original
742 Leute haben es durchsucht

LeetCode Meditations: Merge Intervals

Beginnen wir mit der Beschreibung für Zusammenführungsintervalle:

Gegeben sei ein Array von Intervallen, wobei Intervalle[i] = [start_i, end_i], alle überlappenden Intervalle zusammenführen und ein Array der nicht überlappenden Intervalle zurückgeben, die alle Intervalle in der Eingabe abdecken.

Zum Beispiel:

Input: intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
Output: [[1, 6], [8, 10], [15, 18]]

Explanation: Since intervals [1, 3] and [2, 6] overlap, merge them into [1, 6].
Nach dem Login kopieren
Nach dem Login kopieren

Oder:

Input: intervals = [[1, 4], [4, 5]]
Output: [[1, 5]]

Explanation: Intervals [1, 4] and [4, 5] are considered overlapping. 
Nach dem Login kopieren
Nach dem Login kopieren

Wir können zunächst damit beginnen, die Intervalle zu sortieren, damit wir sie später einfacher vergleichen können:

intervals.sort((a, b) => a[0] - b[0]);
Nach dem Login kopieren
Nach dem Login kopieren

Außerdem können wir ein Ergebnisarray initialisieren, das zunächst das erste Element der neu sortierten Intervalle enthält:

let result = [intervals[0]];
Nach dem Login kopieren

Wir müssen das Ende des letzten zusammengeführten Intervalls verfolgen, um es mit dem Anfang des aktuellen Intervalls zu vergleichen, das wir betrachten, um zu überprüfen, ob sie sich überschneiden.

Hinweis Damit sich zwei Intervalle nicht überschneiden, sollte der
Note
For two intervals not to overlap, the start of one should be strictly larger than the end of the other or the end of the one should be strictly smaller than the start of the other, as mentioned in our chapter introduction.
Anfang eines Intervalls strikt größer sein als das Ende von das andere
oder das Ende des einen sollte streng kleiner sein als das Anfangdes anderen, wie in unserer Kapiteleinleitung erwähnt.

Wenn sie sich nicht überschneiden, können wir einfach dieses Intervall zum Ergebnis hinzufügen. Andernfalls müssen wir das „letzte Ende“ aktualisieren und die Intervalle effektiv zusammenführen:

Input: intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
Output: [[1, 6], [8, 10], [15, 18]]

Explanation: Since intervals [1, 3] and [2, 6] overlap, merge them into [1, 6].
Nach dem Login kopieren
Nach dem Login kopieren

Und das Einzige, was noch zu tun bleibt, ist, das Ergebnis zurückzugeben:

Input: intervals = [[1, 4], [4, 5]]
Output: [[1, 5]]

Explanation: Intervals [1, 4] and [4, 5] are considered overlapping. 
Nach dem Login kopieren
Nach dem Login kopieren

Und so sieht unsere endgültige Lösung in TypeScript aus:

intervals.sort((a, b) => a[0] - b[0]);
Nach dem Login kopieren
Nach dem Login kopieren

Zeit- und Raumkomplexität

Wir sortieren Intervalle und die integrierte Sortierfunktion hat O(n log n)O(n log n) O(n log n) Zeitkomplexität. (Die Schleife ist O(n)O(n) O(n) , aber die Gesamtzeitkomplexität ist O(n log n)O(n log n) O(n log n) ).

Das Ergebnis-Array kann mit zunehmender Größe der Eingabe-Array-Intervalle größer werden, daher haben wir O(n)O(n) O(n) Raumkomplexität.


Als nächstes werfen wir einen Blick auf das letzte Problem im Kapitel „Nicht überlappende Intervalle“. Bis dahin viel Spaß beim Codieren.

Das obige ist der detaillierte Inhalt vonLeetCode-Meditationen: Intervalle zusammenführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage