This is the direct fall-out of the recursive formulation of any
problem. If the solution to any problem can be
formulated recursively using the solution to its
subproblems, and if its subproblems are overlapping,
then one can easily memoize or store the solutions to
the subproblems in a table.