Overlapping subproblems: The recursive solution solves the same subproblems repeatedly. (If subproblems don't overlap, it's just divide-and-conquer, like merge sort.) Optimal substructure: The optimal ...