Dynamic Programming Concepts Flashcards
1
Q
Optimal Substructure
A
When the optimal solution to a problem consists of optimal solutions to subproblems.
2
Q
Overlapping Subproblems
A
When breaking a problem into subproblems produces multiple instances of the same subproblem. i.e. Subproblems share subproblems
3
Q
Memoization
A
Storing optimal solutions to subproblems in order to solve dependant problems.
4
Q
Top-Down Solution
A
Recurses down to subproblems with trivial solutions, then memoizes results to solve subproblems all the way up the recursion stack.
5
Q
Bottom-Up Solution
A
Builds memoization table starting from basic trivial solutions until the desired solution is reached.