- 1.
- Optimal Substructure.
Optimal solution to problem involves optimal solutions to subproblems.

- 2.
- Overlapping Subproblems. Of the typically exponential number of subproblems referred to by a recursive solution, only a polynomial number of them are distinct.