Heim >Backend-Entwicklung >PHP-Tutorial >. Lexikografische Zahlen
386. Lexikografische Zahlen
Schwierigkeit:Mittel
Themen:Tiefensuche, Versuch
Bei einer gegebenen ganzen Zahl n werden alle Zahlen im Bereich [1, n] in lexikografischer Reihenfolge sortiert zurückgegeben.
Sie müssen einen Algorithmus schreiben, der in O(n) Zeit läuft und O(1) zusätzlichen Speicherplatz verwendet.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Lösung:
Wir können es mit einer DFS-ähnlichen Strategie (Depth First Search) angehen.
Lassen Sie uns diese Lösung in PHP implementieren: 386. Lexikografische Zahlen
<?php /** * @param Integer $n * @return Integer[] */ function lexicalOrder($n) { ... ... ... /** * go to ./solution.php */ } // Example usage $n1 = 13; print_r(lexicalOrder($n1)); $n2 = 2; print_r(lexicalOrder($n2)); ?> <h3> Erläuterung: </h3> <ul> <li>Wir behalten eine aktuelle Zahl bei und versuchen, so tief wie möglich zu gehen, indem wir sie mit 10 multiplizieren, um die nächste lexikografische Zahl zu erhalten.</li> <li>Wenn wir nicht multiplizieren können (weil es n überschreiten würde), erhöhen wir die Zahl. Wir behandeln Fälle, in denen die Erhöhung zu Zahlen wie 20, 30 usw. führt, indem wir nach nachgestellten Nullen suchen und die aktuelle Zahl entsprechend anpassen.</li> <li>Die Schleife wird fortgesetzt, bis wir alle Zahlen bis n in lexikografischer Reihenfolge hinzugefügt haben.</li> </ul> <h3> Beispielhafte Vorgehensweise: </h3> <h4> Eingabe: n = 13 </h4> <ol> <li>Beginnen Sie bei 1.</li> <li>Multiplizieren Sie 1 mit 10 -> 10.</li> <li>Füge 11, 12, 13 hinzu.</li> <li>Gehen Sie zurück zu 2 und erhöhen Sie die Zahl weiter bis 9.</li> </ol> <h4> Ausgabe: </h4> <pre class="brush:php;toolbar:false">[1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2]
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. Lexikografische Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!