Competitive Programming Roadmap
Dynamic Programming
Learning Path
Follow these concepts in order to master this topic.
1
Introduction to Dynamic Programming2
When to Use Dynamic Programming3
Overlapping Subproblems4
Optimal Substructure5
Recursion Review6
Memoization7
Tabulation8
Top-Down vs Bottom-Up9
State Definition10
State Transition11
Base Cases12
Space Optimization13
1D Dynamic Programming14
2D Dynamic Programming15
Fibonacci DP16
Climbing Stairs17
House Robber18
Coin Change19
Subset Sum20
Partition Equal Subset Sum21
0/1 Knapsack22
Longest Increasing Subsequence (LIS)23
Longest Common Subsequence (LCS)24
Edit Distance25
Common Dynamic Programming PatternsDocumentation
Official documentation and references.
Video Courses
Recommended free video courses.
Practice Websites
Practice what you've learned.
Projects
Apply what you've learned by building real projects.
Implement 15 Classic Dynamic Programming Algorithms
IntermediateSolve the Complete AtCoder Educational DP Contest
AdvancedBuild Your Personal Dynamic Programming Pattern Library
AdvancedTools
Recommended tools for this topic.