Review: Dynamic Programming
l When applicable:
n Optimal substructure: optimal solution to problem
consists of optimal solutions to subproblems
n Overlapping subproblems: few subproblems in
total, many recurring instances of each
n Basic approach:
u Build a table of solved subproblems that are used to
solve larger ones
u What is the difference between memoization and
dynamic programming?
u Why might the latter be more efficient?