Динамическое программирование — это алгоритмический метод, который решает сложную проблему, разбивая ее на более простые подзадачи и сохраняя результаты каждой подзадачи для решения общей ситуации. Он используется в основном для задач оптимизации, целью которых является поиск наилучшего решения.
В этой статье я поделюсь некоторыми замечательными ресурсами, которые помогут вам изучать и практиковать задачи DP из бесплатных ресурсов.
Все задачи динамического программирования (DP) на LeetCode:
Здесь перечислены несколько категорий задач, отсортированных по сложности.
- Линейный DP
- Рюкзак
- Многомерный DP
- Интервал DP
- бит DP
- Цифра DP
- DP на деревьях
- Строка DP
- Вероятность DP
- Классические DP
- DP + Alpha (Tricks/DS)
- Вставка DP
- График DP
- Запоминание
- Двоичный подъем
- Математика
Ежедневная практика может помочь вам улучшить вашу способность решать.