Heim >Backend-Entwicklung >PHP-Tutorial >Mindestanzahl an Entfernungen, um ein Gebirgsmassiv zu erstellen
1671. Mindestanzahl an Entfernungen, um ein Gebirgsmassiv zu erstellen
Schwierigkeit:Schwer
Themen:Array, Binäre Suche, Dynamische Programmierung, Greedy
Sie erinnern sich vielleicht, dass ein Array-Array genau dann ein Berg-Array ist, wenn:
Geben Sie bei einem gegebenen ganzzahligen Array nums die Mindestanzahl der zu entfernenden Elemente zurück, um nums zu einem Bergarray zu machen.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können einen dynamischen Programmieransatz mit der Idee verwenden, die maximale Bergteilsequenz zu finden, anstatt die zu entfernenden Elemente direkt zu zählen. Dieser Ansatz basiert auf der Suche nach zwei Longest Increasing Subsequences (LIS) für jede Position im Array: eine geht von links nach rechts und die andere geht von rechts nach links. Sobald wir die längste mögliche Berg-Teilsequenz haben, gibt uns die Differenz zwischen der ursprünglichen Array-Länge und dieser Teilsequenz-Länge die minimal zu entfernenden Elemente.
Identifizieren Sie zunehmende Teilsequenzlängen:
Identifizieren Sie abnehmende Teilsequenzlängen:
Maximale Berglänge berechnen:
Erhalten Sie die Mindestentfernungen:
Lassen Sie uns diese Lösung in PHP implementieren: 1671. Mindestanzahl an Entfernungen, um ein Gebirgsmassiv zu erstellen
<?php /** * @param Integer[] $nums * @return Integer */ function minimumMountainRemovals($nums) { ... ... ... /** * go to ./solution.php */ } // Example usage $nums1 = [1, 3, 1]; echo minimumMountainRemovals($nums1); // Output: 0 $nums2 = [2, 1, 1, 5, 6, 2, 3, 1]; echo minimumMountainRemovals($nums2); // Output: 3 ?>
Linke LIS-Berechnung:
Richtige LIS-Berechnung:
Bergberechnung:
Endgültige Berechnung:
Diese Lösung stellt sicher, dass wir die maximale Gebirgsteilfolge finden und die minimalen Entfernungen berechnen, die erforderlich sind, um eine Gebirgsgruppe zu erreichen.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonMindestanzahl an Entfernungen, um ein Gebirgsmassiv zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!