Introduction to Algorithms: Dynamic Programming I: Fibonacci, Shortest Paths

Dynamic Programming I: Fibonacci, Shortest Paths

This lecture introduces dynamic programming, in which careful exhaustive search can be used to design polynomial-time algorithms. The Fibonacci and shortest paths problems are used to introduce guessing, memoization, and reusing solutions to subproblems.