Dynamisk programmering (DP) løser problemer med overlapping subproblems og optimal substructure ved at beregne hvert delproblem én gang og genbruge resultatet. De to stilarter er memoization (top-down) og tabulation (bottom-up).
Ideen
Naiv rekursion genberegner de samme delproblemer eksponentielt. DP gemmer dem, hvilket kollapser eksponentielt arbejde til polynomielt.
