Dynamic Programming

Dynamic Programming: A technique to solve complex problems by breaking them down into overlapping subproblems and solving them recursively.