Форум сайта python.su
0
Реализовал так:
def lis(A): F = [0]*(len(A)) for i in range(1, len(A)): m = 1 for j in range(0, i): if A[i] > A[j] and F[j] > m: m = F[j] F[i] = m + 1 # print('F = '+str(F)) return F[-1] A=[1,3,0,5,2] print('A = '+str(A)) print('The largest increasing subsequence '+str(lis(A)))
Офлайн
857
Не так это надо делать. Нужно сделать переменную “индекс_наибольшей”, переменную “длина_наибольшей” и потом сделать один цикл, который эти две переменные перезаписывает, когда это требуется. В конце в них останется индекс наибольшей подпоследовательности и её длина.
Офлайн