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