COP 4531: Lecture 17

Learning objectives

After this class, you should be able to:

  1. Given a problem, identify if dynamic programming is likely to be effective in solving it.
  2. Given a problem, determine if it satisfies the optimal substructure property.
  3. Given a recursive solution to a problem, derive its time complexity.
  4. Given a recursive solution (with repeated subproblems) to a problem, give an improved algorithm that uses memoization to reduce the time taken.

Reading assignment

  1. CLR: Section 15.3.
  2. CLR: Chapter 15, pages 350-351.

Exercises and review questions


Last modified: 19 Mar 2007