Introduction to Dynamic Programming A technique that efficiently solves a class of problems that have overlapping subproblems and optimal substructure property Efficiency of the CPU can be enhanced ...