Review:
Dynamic Programming
overall review score: 4.5
⭐⭐⭐⭐⭐
score is between 0 and 5
Dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems and storing the solutions to those subproblems.
Key Features
- Optimal substructure
- Overlapping subproblems
- Memoization
- Tabulation
Pros
- Efficient solution for many optimization problems
- Can greatly reduce time complexity
- Easy to implement once the problem is broken down
Cons
- Requires a deep understanding of the problem to correctly identify subproblems
- Can be challenging to come up with a recursive formula for some problems