# What is Dynamic Programming? A Dynamic Programming is an algorithm technique based on recurrent formula and one (or some starting states). A sub solution of the problem is constructed from previously found ones. DP solutions have polynomial[^1] complexity which assures a much faster running time than other techniques like [[Backtracking]] and [[Brute Forcing]] # Problems - [[1646. Get Maximum in Generated Array]] ## Leetcode - [Solve all Dynamic Programming on Leetcode](https://leetcode.com/discuss/post/1000929/solved-all-dynamic-programming-dp-proble-8m82/) - [Codeforces everything about dynamic programming](https://codeforces.com/blog/entry/43256) - --- footnotes: [^1]: Consisting of several terms tags: #dp, #dynamic-programming sources: - [Dynamic Programming: From Novice to Advanced](https://www.topcoder.com/thrive/articles/Dynamic%20Programming:%20From%20Novice%20to%20Advanced) - [What is dynamic programming](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews/m2G1pAq0OO0)