Проблема заключается в следующем:
Учитывая, что последовательность L из n целых чисел не обязательно различна, напишите алгоритм, который вычисляет возрастающую подпоследовательность максимальной длины:
Уравнение повторения, которое я разработал, таково:
Я начинаю индекс с 0:
If j = n opt(j) = 0 (base case)
otherwise opt(j) = max j <i <= n such that Lj <Li = {opt(i) +1}
Как вы думаете, это правильно? стандартное решение, используемое для этой типичной задачи, состоит в том, чтобы сначала рассчитать максимальное увеличение подпоследовательности, заканчивающееся в Li для всех элементов последовательности, а затем максимальное значение для этих значений, то есть
if i = 1 opt (i) = 1
otherwise opt (i) = max 1 <= j <= i-1 and Lj <Li = {opt (i)} +1
и затем максимум на этих элементах.
поэтому я хотел знать, считаете ли вы, что мое решение в любом случае было правильным.