Programimi dinamik (DP) zgjidh problemat me nënproblema që mbivendosen dhe strukturë optimale të nënproblemave duke llogaritur çdo nënproblem një herë dhe duke rikërdorur rezultatin. Dy stilet janë memoizimi (top-down) dhe tabelimi (bottom-up).
Ideja
Rekurzioni naiv rillogarit të njëjtat nënproblema në mënyrë eksponenciale. DP i memorizon ato, duke shndërruar punën eksponenciale në polinomiale.
