У меня есть последовательность значений [1,2,3,4,1,5,1,6,7], и мне нужно найти самую длинную подпоследовательность увеличивая длину. Тем не менее, функция должна останавливать подсчет, как только она достигает числа ниже предыдущего. Ответ в этой последовательности в этом случае [1,2,3,4]. Поскольку перед сбросом он имеет 4 значения. Как я могу написать код Python для этого?Извлечение подпоследовательности максимальной длины из последовательности [PYTHON]
Примечание: поиск «самой длинной возрастающей подпоследовательности» представляется общей проблемой, поэтому поиск в Интернете я нахожу много решений, которые будут учитываться для всей длины последовательности, и возвращать подпоследовательность возрастающих значений, игнорируя любые уменьшается, поэтому в этом случае он вернется [1,2,3,4,5,6,7]. Это не то, что я ищу.
Нужно подсчитать каждую подпоследовательность и сбросить счет, достигнув числа ниже предыдущего. Затем нужно сравнить все подсчитанные подпоследовательности и вернуть самый длинный.
Заранее спасибо.
это кажется довольно тривиальной алгоритм мудр, вы пытались решить эту проблему? StackOverflow не является службой записи кода. –
, что должно быть возвращено с помощью ввода: '[1,2,3,9,2,3,4,5,3,0,1,2,3,4,5,6]' – nephi12
Ну, как было описано меня алгоритм сохранил бы длину каждой подпоследовательности, так что 1,2,3, 9 - 4 значения, 2,3,4,5 - 4, 3 - 1 значение и 0,1,2,3,4,5, 6 - 6 значений, поэтому он возвращает только конечную, самую длинную подпоследовательность. –