Динамическое программирование является алгоритмической техникой для того, чтобы эффективно решить проблемы с рекурсивной структурой, содержащей много перекрывающихся подпроблем.

Ссылка между динамическим программированием и рекурсией на самом деле очень сильна.

Любое решение для динамического программирования может быть преобразовано в рекурсивное решение (с memoization) с идентичными рабочими характеристиками, например, O (n*n). Различием является, прежде всего, одна из презентации.

Для поддаваний динамическому программированию формулировка проблемы должна иметь оптимальное свойство подструктуры.

Самой долгой общей проблемой подпоследовательности является хороший пример проблемы, которая может быть решена с динамическим программированием.