Dinaminis programavimas (DP) sprendžia problemas su persidengusiais pobroblėmais ir optimaliu postruktūru, apskaičiavus kiekvieną pobroblėmą vieną kartą ir iš naujo naudojant rezultatą. Du stiliai yra memoization (nuo viršaus į apačią) ir tabulation (nuo apačios į viršų).
Idėja
Naivi rekursija iš naujo apskaičiuoja tuos pačius pobroblėmus eksponentiškai. DP juos talpina, sumažindama eksponentinį darbą į polinomą.
