डायनामिक प्रोग्रामिङ (DP) ले overlapping subproblems र optimal substructure भएका समस्याहरू समाधान गर्छ प्रत्येक subproblem एक पटक गणना गरेर र नतिजा पुनः प्रयोग गरेर। दुई शैलीहरू हुन् memoization (top-down) र tabulation (bottom-up)।
आइडिया
Naive recursion एउटै subproblems लाई exponentially पुनः गणना गर्छ। DP ले यसलाई cache गर्छ, exponential काम लाई polynomial मा collapse गर्दै।
