179. Größte Zahl
Schwierigkeit:Mittel
Themen: Array, String, Greedy, Sortieren
Ordnen Sie eine gegebene Liste nicht negativer Ganzzahlen so an, dass sie die größte Zahl bilden, und geben Sie sie zurück.
Da das Ergebnis sehr groß sein kann, müssen Sie eine Zeichenfolge anstelle einer Ganzzahl zurückgeben.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Lösung:
Wir müssen Zahlen anhand ihrer verketteten Ergebnisse vergleichen. Für zwei Zahlen a und b vergleichen wir ab (a verkettet mit b) und ba (b verkettet mit a) und entscheiden über die Reihenfolge, auf deren Grundlage eine größere Zahl entsteht.
Lassen Sie uns diese Lösung in PHP implementieren: 179. Größte Zahl
Erläuterung:
- usort($nums, $comparator): Wir sortieren das Array mit einem benutzerdefinierten Komparator. Für jedes Zahlenpaar a und b vergleichen wir die verketteten Zeichenfolgen a . b und b . a.
- Vergleichslogik: Der strcmp($order2, $order1) stellt sicher, dass wir eine absteigende Reihenfolge basierend auf den verketteten Zeichenfolgen erhalten.
- Edge Case Handling: Wenn das erste Zeichen der resultierenden verketteten Zeichenfolge 0 ist, geben wir „0“ zurück, was geschieht, wenn alle Elemente des Arrays Nullen sind.
- Zeitkomplexität: Das Sortieren der Zahlen erfordert O(n log n) und ihre Verkettung erfordert O(n), wobei n die Anzahl der Zahlen im Eingabearray ist.
Diese Lösung verarbeitet die Einschränkungen effizient und gibt die größtmögliche Zahl als Zeichenfolge zurück.
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. Größte Zahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!