What is dynamic programming?
Dynamic programming (DP) problems exhibit two characteristics:
- Optimal substructure: an optimal solution for the problem can be constructed from the optimal solutions of its subproblems.
- Overlapping subproblems: the problem can be broken down into subproblems which share identical subproblems
Good reads
Practice problems
Well-known DP problems