Dynamic Programming

Dynamic Programming
  1. Come up with a recursive function
  2. Memorize the intermediate results
  3. Make it bottom up