Dynamic Programming Info
: The optimal solution to the larger problem can be constructed from the optimal solutions of its subproblems. Common Approaches
: This approach starts with the original complex problem and breaks it down recursively. It uses a data structure (like an array or hash map) to store ("memoize") the results of subproblems so they can be reused when encountered again. Dynamic Programming
: This approach starts by solving the smallest possible subproblems first and iteratively builds up to the solution of the original problem, usually filling out a table (matrix or array) in the process. : The optimal solution to the larger problem
There are two standard ways to implement dynamic programming solutions: Dynamic Programming
To apply dynamic programming effectively, a problem must typically exhibit two primary properties: