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

В этой статье я поделюсь некоторыми замечательными ресурсами, которые помогут вам изучать и практиковать задачи DP из бесплатных ресурсов.

Все задачи динамического программирования (DP) на LeetCode:

Здесь перечислены несколько категорий задач, отсортированных по сложности.

  1. Линейный DP
  2. Рюкзак
  3. Многомерный DP
  4. Интервал DP
  5. бит DP
  6. Цифра DP
  7. DP на деревьях
  8. Строка DP
  9. Вероятность DP
  10. Классические DP
  11. DP + Alpha (Tricks/DS)
  12. Вставка DP
  13. График DP
  14. Запоминание
  15. Двоичный подъем
  16. Математика

Ежедневная практика может помочь вам улучшить вашу способность решать.