Форум сайта python.su
0
Как решить эту проблему - Longest Increasing Subsequence Problem Link в python3
Find the longest increasing subsequence of a given sequence / array.
Input : [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]
Output : 6
The sequence : [0, 2, 6, 9, 13, 15] or [0, 4, 6, 9, 11, 15] or [0, 4, 6, 9, 13, 15]
Офлайн
857
Однопроходный алгоритм без флагов.
длина_максимальной_последовательности := 0
длина_текущей_последовательности := 0
предыдущий_элемент := неопр
цикл для всех текущий_элемент из последовательность_элементов выполнять
если предыдущий_элемент = неопр то
длина_текущей_последовательности := 1
длина_максимальной_последовательности := 1
предыдущий_элемент := текущий_элемент
продолжить цикл
конец если
если текущий_элемент >= предыдущий_элемент то
длина_текущей_последовательности := длина_текущей_последовательности + 1
иначе
если длина_текущей_последовательности > длина_максимальной_последовательности то
длина_максимальной_последовательности := длина_текущей_последовательности
конец если
длина_текущей_последовательности := 1
конец если
предыдущий_элемент := текущий_элемент
конец цикла
если длина_текущей_последовательности > длина_максимальной_последовательности то
длина_максимальной_последовательности := длина_текущей_последовательности
конец если
Отредактировано py.user.next (Июль 22, 2018 06:25:23)
Офлайн