What is dynamic programming?

What is dynamic programming?

Approach: Define method for solving problems with overlapping subproblems.

Method for solving complex problems by breaking into overlapping subproblems and storing results to avoid recomputation. Requires optimal substructure.

Follow-up: Difference from divide and conquer?

Key concepts: optimal substructure, overlapping subproblems, memoization.