Существует «алгоритм сортировки», иногда называемый сортировкой Сталина, в котором для сортировки списка вы просто удаляете элементы из списка, пока он не будет отсортирован в порядке возрастания. Например список
[1, 2, 4, 5, 3, 6, 6]
При "сортировке" по сталину сортировка становится
[1, 2, 4, 5, 6, 6]
Три были удалены, потому что это было не в порядке.
Теперь очевидно, что есть много способов удалить элементы для сортировки списка. Например, любой список, содержащий менее двух элементов, должен быть отсортирован, поэтому, просто удалив достаточное количество элементов вслепую, мы всегда можем отсортировать список. Поскольку это так, мы заботимся только о самом длинном из результатов сталинского рода.
Ваша задача состоит в том, чтобы взять список натуральных чисел и вывести длину самого длинного отсортированного (возрастающего) списка, который можно получить, удалив элементы из исходного списка. То есть найдите длину самого длинного отсортированного (возможно, несмежного) подсписка.
Сортированные списки могут содержать один и тот же элемент более одного раза подряд. Вам не нужно поддерживать пустой список, если ваша программа не пуста.
счет
Ваш ответ будет оцениваться по длине самого длинного из возможных сталинских сортов. Программы будут интерпретироваться как последовательность байтов, а не символов, и их порядок будет естественным, который возникает при интерпретации байтов как чисел. Чем ниже баллы, тем лучше.
Это не код-гольф
Вот отличный инструмент, который поможет вам оценить ваши ответы.
Контрольные примеры
[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