В настоящее время у меня есть этот кусок кода, который работает путем извлечения суб последовательность целых чисел, которые идут в порядке возрастания по наибольшей длиныизвлечение суб-последовательность целых чисел
def sequence(n):
longSeq = []
curSeq = []
for i in range(len(n)):
if i < len(n) - 1 and n[i] <= n[i+1]:
curSeq.append(n[i])
else:
curSeq.append(n[i])
if len(curSeq) > len(longSeq):
longSeq = curSeq
curSeq = []
print ('Longest sub-sequence of maxiumum length of integers is: ', longSeq)
sequence([1,2,4,1,2,3,2,4,7,8,10,12,1,3,4,5,6,7])
Однако, когда у меня есть два суб- последовательности по возрастанию, которые имеют одинаковую длину, они будут печатать только 1, как это изменить, так что если есть две подпоследовательности одинаковой длины, они будут печатать оба? Любая помощь приветствуется
Так что, когда я запускаю его я получаю
Серия суб-последовательность максимальной длины целых чисел: [2, 4, 7, 8, 10, 12]
Неоптимальным, но работающим подходом было бы разделить его на две отдельные задачи. Сначала рассмотрим самую длинную подпоследовательность. Затем найдите и распечатайте все подпоследовательности этой длины. –