Python-курс
🧮 Динамическое программирование

Табличный DP: снизу вверх

Заполняем таблицу от простого к сложному.

~30 минПродвинутый 2 урока

Снизу вверх (bottom-up)

Табличный DP — другой взгляд на ту же идею. Вместо рекурсииПриём, при котором функция вызывает саму себя. Нужен базовый случай, чтобы вызовы завершились. «сверху» мы идём снизу: заводим массив (таблицу) dp, заполняем самые простые случаи, а затем строим ответы посложнее из уже посчитанных. Никакой рекурсии и риска переполнить стек — только циклКонструкция, повторяющая блок кода: for перебирает элементы, while — пока условие истинно..

dp[i] = dp[i-1] + dp[i-2] 0 1 1 2 3 5 8 i=0 i=2 i=6
Зелёные — база; каждая следующая клетка — сумма двух предыдущих.
fib-table.py

Часто всю таблицу хранить не нужно — для Фибоначчи достаточно двух последних значений. Это оптимизация по памяти с O(n) до O(1):

fib-two-vars.py
Шаг 1 из 7