1D Dynamic Programming

Solving optimization problems by breaking them into overlapping subproblems.