Heim >Backend-Entwicklung >PHP-Tutorial >Finden Sie die Punktzahl eines Arrays, nachdem Sie alle Elemente markiert haben
2593. Finden Sie die Punktzahl eines Arrays, nachdem Sie alle Elemente markiert haben
Schwierigkeit:Mittel
Themen: Heap (Prioritätswarteschlange), Sortieren, Array, Simulation, Hash-Tabelle, geordneter Satz, geordnete Karte, Greedy, monotoner Stapel, Schiebefenster, zwei Zeiger, Stapel, Warteschlange, Bitmanipulation, Teilen und Erobern, dynamische Programmierung, doppelt verknüpfte Liste, Datenstrom, Radix-Sortierung, Backtracking, Bitmaske, Baum, Design, Hash-Funktion, String, Iterator, Zählsortierung, verknüpfte Liste
Sie erhalten ein Array nums, das aus positiven ganzen Zahlen besteht.
Beginnend mit Punktzahl = 0 wenden Sie den folgenden Algorithmus an:
Geben Sie die Punktzahl zurück, die Sie nach Anwendung des obigen Algorithmus erhalten.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können den Markierungsprozess effizient simulieren, indem wir ein sortiertes Array oder eine Prioritätswarteschlange verwenden, um den Überblick über das kleinste unmarkierte Element zu behalten. Wir können also den folgenden Ansatz verwenden:
Lassen Sie uns diese Lösung in PHP implementieren: 2593. Finden Sie die Punktzahl eines Arrays, nachdem Sie alle Elemente markiert haben
Erläuterung:
Haufenkonstruktion:
- Die usort-Funktion sortiert das Array basierend auf Werten und nach Index, wenn Werte verknüpft sind.
- Dadurch wird sichergestellt, dass wir immer das kleinste unmarkierte Element mit dem kleinsten Index verarbeiten.
Markierungslogik:
- Für jedes nicht markierte Element markieren wir es und seine angrenzenden Elemente mithilfe des markierten Arrays.
- Dadurch wird sichergestellt, dass wir zuvor markierte Elemente effizient überspringen.
Zeitkomplexität:
- Sortieren des Heaps: O(n log n)
- Verarbeitung des Heaps: O(n)
- Insgesamt: O(n log n), was für die gegebenen Einschränkungen effizient ist.
Weltraumkomplexität:
- Markiertes Array: O(n)
- Haufen: O(n)
- Gesamt: O(n)
Diese Lösung erfüllt die Einschränkungen und arbeitet effizient für große Eingaben.
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 vonFinden Sie die Punktzahl eines Arrays, nachdem Sie alle Elemente markiert haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!