#Using Dynamic Programming to solve the Knapsack Problem
Dynamic Programming is one very useful technique for solving problems like the Knapsack problem.
The basic idea of Dynamic programming is to break down a problem in recursive subproblems. Each subproblem must be easy to solve, and its solution stored in some data structure to be used again.