

















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?

