Es gibt einen "Sortieralgorithmus", der manchmal als Stalin-Sortierung bezeichnet wird. Um eine Liste zu sortieren, entfernen Sie einfach Elemente aus der Liste, bis sie in aufsteigender Reihenfolge sortiert sind. Zum Beispiel die Liste
[1, 2, 4, 5, 3, 6, 6]
Wenn "sortiert" mit Stalin sortiert wird
[1, 2, 4, 5, 6, 6]
Die drei wurden entfernt, weil es nicht in Ordnung war.
Nun gibt es offensichtlich viele Möglichkeiten, Elemente zu entfernen, um eine Liste zu sortieren. Zum Beispiel muss jede Liste mit weniger als zwei Elementen sortiert werden, sodass wir immer eine Liste sortieren können, indem Sie einfach genug Elemente blind entfernen. Da dies der Fall ist, kümmern wir uns nur um das längstmögliche Ergebnis einer Stalin-Sorte.
Ihre Aufgabe wird es sein, eine Liste positiver Ganzzahlen zu erstellen und die Länge der am längsten sortierten (aufsteigenden) Liste auszugeben, die durch Entfernen von Elementen aus der ursprünglichen Liste erreicht werden kann. Das ist die Länge der am längsten sortierten (möglicherweise nicht zusammenhängenden) Unterliste.
Sortierte Listen können dasselbe Element mehrmals hintereinander enthalten. Sie müssen die leere Liste nur dann unterstützen, wenn Ihr Programm selbst leer ist.
Wertung
Ihre Antwort wird durch die Länge der eigenen längsten möglichen Stalin-Sorte bewertet. Programme werden als Folge von Bytes und nicht als Zeichen interpretiert, und ihre Reihenfolge ist die natürliche, die sich aus der Interpretation der Bytes als Zahlen ergibt. Niedrigere Werte sind besser.
Dies ist kein Code-Golf
Hier ist ein nützliches Tool, mit dem Sie Ihre Antworten bewerten können.
Testfälle
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5
quelle
Antworten:
Python 2 , Länge
1412109Die Ausgabe erfolgt über den Exit-Code.
Probieren Sie es online!
Wie es funktioniert
Zu jeder Zeit verfolgt das ArrayL die längsten sortierten Subarrays, die bisher angetroffen wurden; L [ a - 1 ] ist die Länge der längsten, die mit ein endet .
Anfangs haben wir keine Array-Elemente verarbeitet, daher bestehtL vollständig aus Nullen.
quelle
Wolfram Language (Mathematica) , 9 Punkte
Probieren Sie es online!
quelle
Gelee , Länge
42Probieren Sie es online!
Bytes in Jellys Codepage
Wie es funktioniert
quelle
Perl 6 , Punktzahl 9
Probieren Sie es online!
quelle
Haskell , Score
87, 48 BytesProbieren Sie es online!
Die am längsten sortierte Unterliste ist
quelle
Pyth,
3Punkte 2 (7Bytes)Dank Anders Kaseorg einen Punkt gespart.
Probieren Sie es hier aus
Erläuterung
quelle
leSI#y
Scores 2.Stax , 4 maximale Länge Stalin Art
Führen Sie es aus und debuggen Sie es
Das funktioniert so.
quelle
R , Score
1511,7262 BytesProbieren Sie es online!
Portiert Dennis 'Python-Antwort auf R.
quelle
Brachylog , Länge 2 (4 Bytes)
Probieren Sie es online!
Eine Antwort, die sich dadurch auszeichnet, dass sie nicht viel kürzer sortiert ist.
(
08 03 80 6C
in Brachylogs Codepage)quelle
►LSnmOṖ
Husk ausgedacht, aber seine Punktzahl (zumindest für seine Länge) ist zu schlecht, um sich die Mühe zu machen, etwas zu posten ...