Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems, so that we do not have to re-compute them when needed later. This simple optimization reduces time complexities from exponential to polynomial.
Below is a list of resources related to Dynamic Programming.
- Follow this link for gaining insights on standard dynamic programming problems. GeeksForGeeks
- https://codeforces.com/blog/entry/43256 This is a blog which can help you gain confidence for the beginning phase.
- https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/ is a good resource for reading.
- https://www.hackerearth.com/challenge/competitive/codemonk-dynamic-programming-part-i/problems/ is a hackerearth link to beginner problems.
- https://www.hackerearth.com/practice/algorithms/dynamic-programming/bit-masking/tutorial/ is a link for Dynamic Programming with bit masking.
- http://codeforces.com/blog/entry/20935 DP on trees.
- https://stackabuse.com/dynamic-programming-in-java/ introduction lecture with lots of code examples.
- https://medium.com/cs-dojo/an-introduction-to-dynamic-programming-89fdd3549d54 introduction to dynamic programming with emphasis on optimization.
- https://www.youtube.com/watch?v=YBSt1jYwVfU&list=PLl0KD3g-oDOGJUdmhFk19LaPgrfmAGQfo Check out this awesome video series by Errichto on Dynamic Programming.
- https://codeforces.com/blog/entry/67679 A complete reference guide to Dynamic Programming.
- https://medium.com/@codingfreak/top-10-dynamic-programming-problems-5da486eeb360 Dynamic programming problem set commented.
- https://www.geeksforgeeks.org/top-20-dynamic-programming-interview-questions/ Another dynamic programming problem set commented.
- https://www.geeksforgeeks.org/dynamic-programming/ Dynamic programming concepts and problems for training.
- https://www.freecodecamp.org/news/demystifying-dynamic-programming-3efafb8d4296/ How to construct and code dynamic programming algorithms.
- https://www.geeksforgeeks.org/solve-dynamic-programming-problem/ step by step on How to solve a dynamic programming problem.
- https://medium.com/educative/5-dynamic-programming-problems-and-solutions-for-your-next-coding-interview-ad938bce2351 6 Dynamic Programming problems and solutions for your next coding interview.
- https://www.coursera.org/lecture/algorithms-greedy/principles-of-dynamic-programming-VEc7L Principles of Dynamic Programming.