Bazen bir listeyi sıralamak için, artan sırayla sıralanana kadar listeden öğeleri kaldırdığınız Stalin sıralaması adı verilen bir "sıralama algoritması" vardır. Örneğin liste
[1, 2, 4, 5, 3, 6, 6]
Stalin sıralama kullanarak "sıralanır" olduğunda
[1, 2, 4, 5, 6, 6]
Üçü bozuk olduğu için kaldırıldı.
Şimdi açıkçası, bir listeyi sıralamak için elemanları kaldırmanın birçok yolu var. Örneğin, ikiden daha az element içeren herhangi bir liste, sadece yeterli sayıda öğeyi kör şekilde kaldırarak, her zaman bir listeyi sıralayabiliriz. Durum bu olduğu için yalnızca en uzun süreyi önemsiyoruz Stalin türünden mümkün sonucu .
Göreviniz, pozitif tamsayıların bir listesini almak ve öğelerin orijinal listesinden çıkarılmasıyla ulaşılabilecek en uzun sıralanmış (artan) listenin uzunluğunu çıkarmak olacaktır. Bu, en uzun sıralanmış (muhtemelen bitişik olmayan) alt listenin uzunluğunu bulur.
Sıralanan listeler aynı öğeye art arda birden fazla sahip olabilir. Programın kendisi boş olmadığı sürece boş listeyi desteklemeniz gerekmez.
puanlama
Cevabınız, mümkün olan en uzun Stalin türünün uzunluğu ile puanlanacaktır. Programlar, karakterlerden ziyade bir bayt dizisi olarak yorumlanacak ve sıraları, baytları sayı olarak yorumlayarak ortaya çıkan doğal olan olacaktır. Düşük puanlar daha iyidir.
Bu kod golf değil
İşte size cevaplarınızı puanlamanıza yardımcı olacak zarif bir araç .
Test durumları
[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