Динамическое программирование: анимация и пример на C++ | Мемоизация против табуляции (числа Фибо...
Tech in Motion
0:00 / 0:00
Динамическое программирование: анимация и пример на C++ | Мемоизация против табуляции (числа Фибо...
132 просмотра · 12 дн. назад
Tech in Motion
40 подписчиков
132 просмотра · 12 дн. назад
Трехстрочная рекурсивная функция Фибоначчи требует более 40 миллиардов вызовов fib(50). Одно изменение уменьшает это число до менее чем 100. Изучите дерево рекурсии и его перекрывающиеся подзадачи, два основных компонента динамического программирования, затем постройте нисходящую мемоизацию и восходящую табуляцию на C++, сократите пространство до O(1) и получите рецепт для каждой задачи динамического программирования.
В этом видео:
• Почему наивные рекурсивные числа Фибоначчи являются экспоненциальными
• Перекрывающиеся подзадачи и оптимальная подструктура
• Мемоизация сверху вниз в C++
• Табуляция снизу вверх в C++
• Пространство O(1) с двумя переменными
• Методы «сверху вниз» и «снизу вверх», а также 5-шаговый рецепт динамического программирования
⏱️ Разделы
0:00 Сорок миллиардов вызовов
0:18 Шаг 1 · Задача: Число Фибоначчи (LeetCode 509)
0:48 Шаг 1 · Понимание примера
1:07 Шаг 1 · Ограничения и что они нам говорят
1:29 Шаг 2 · Подход: перебор, прямо из определения
1:48 Шаг 2 · Подход: почему это так медленно: дерево рекурсии
2:15 Шаг 2 · Подход: два компонента динамического программирования
2:35 Шаг 2 · Подход: сверху вниз: мемоизация
2:51 Шаг 3 · Решение: пробный запуск, дерево рушится
3:19 Шаг 3 · Код: мемоизация на C++
3:38 Шаг 3 · Решение: табуляция снизу вверх
4:03 Шаг 3 · Решение: экономия места: две переменные
4:19 Подход сверху вниз против подхода снизу вверх
4:38 Рецепт решения задач динамического программирования
5:01 Краткий обзор
🧩 Практика
LeetCode 509 · Числа Фибоначчи → https://leetcode.com/problems/fibonac...
LeetCode 1137 · N-е число Трибоначчи → https://leetcode.com/problems/n-th-tr...
LeetCode 70 · Подъем по лестнице → https://leetcode.com/problems/climbin...
💻 Полный код на C++:
📺 Анимированные структуры данных и алгоритмы — анимация на C++. Полный плейлист: [добавить ссылку на плейлист]
⏮️ Предыдущая серия: Эпизод 32 · Минимальное остовное дерево
⏭️ Следующая серия: Эпизод 34 · Одномерный динамический программирование
👍 Поставьте лайк видео и подпишитесь, чтобы получать больше анимационных материалов по структурам данных и алгоритмам.
#ДинамическоеПрограммирование #DSA #Cpp #структурыданных #Интервью #Алгоритмы #Технологии #Информатика #MNC #FAANG #Amazon #Microsoft #Google