← На главную

Динамическое программирование

Оптимизация рекурсивных алгоритмов через запоминание результатов

Что такое динамическое программирование?

Динамическое программирование (ДП) — это метод решения сложных задач путём разбиения их на более простые подзадачи с сохранением результатов для повторного использования.

Ключевые идеи:

Числа Фибоначчи

F(n) = F(n-1) + F(n-2)

Перейти →

Подъём по лестнице

Сколькими способами можно подняться на n ступенек

Перейти →

k-кузнечик

Количество способов допрыгать до n-й позиции (шаги от 1 до k)

Перейти →

Задача о рюкзаке (0/1)

Выбор предметов с максимальной ценностью при ограничении по весу

Перейти →

НОП

Наибольшая общая подпоследовательность двух строк

Перейти →

НВП O(n²)

Наибольшая возрастающая подпоследовательность

Перейти →

НВП O(nlogn)

Наибольшая возрастающая подпоследовательность

Перейти →

Расстояние Левенштейна

Минимальное количество операций для преобразования строки в другую

Перейти →