962. Rampe mit maximaler Breite
Schwierigkeit:Mittel
Themen:Array, Stapel, monotoner Stapel
Eine Rampe in einem ganzzahligen Array nums ist ein Paar (i, j), für das i < j und nums[i] <= nums[j]. Die Breite einer solchen Rampe beträgt j - i.
Geben Sie bei einem gegebenen Ganzzahl-Array Nums die maximale Breite einer Rampe in Nums zurück. Wenn es in Zahlen keine Rampe gibt, geben Sie 0 zurück.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Lösung:
Wir können das Konzept eines monotonen Stapels nutzen. Hier ist die Lösung und Erklärung:
Lassen Sie uns diese Lösung in PHP implementieren: 962. Rampe mit maximaler Breite
Erläuterung:
Erstellen Sie einen abnehmenden Stapel:
- Durchlaufen Sie das Array und fügen Sie Indizes zum Stapel hinzu.
- Fügen Sie einen Index nur hinzu, wenn er einem Wert entspricht, der kleiner oder gleich dem Wert des letzten Index im Stapel ist. Dadurch wird sichergestellt, dass die Werte im Stapel in absteigender Reihenfolge vorliegen.
Überquerung vom Ende:
- Wenn wir das Array rückwärts durchgehen, entfernen Sie für jedes j die Indizes i vom Stapel, solange nums[i] <= nums[j] ist.
- Berechnen Sie die Breite j - i und aktualisieren Sie maxWidth.
Warum das funktioniert:
- Durch die Aufrechterhaltung eines abnehmenden Indexstapels stellen wir sicher, dass wir, wenn wir auf ein j mit einem größeren Wert stoßen, eine größere Breite j - i erhalten können, wenn i vom Stapel entfernt wird.
Zeitkomplexität:
- Der Aufbau des Stapels dauert O(n) Zeit, da jeder Index einmal gepusht wird.
- Das Durchlaufen der End- und Popup-Indizes erfordert ebenfalls O(n), da jeder Index höchstens einmal gepoppt wird.
- Insgesamt läuft die Lösung in O(n)-Zeit, was für Eingabegrößen bis zu 5 * 10^4 effizient ist.
Ausgabe:
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 von. Rampe mit maximaler Breite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!