Dynamic Programming
Dynamic programming (DP) optimizes solutions to recursive problems by combining previously computed solutions to subproblems. DP minimizes repeated calls with the same inputs because results to prior calls are stored for later use.