Dynamisk programmering (DP) løser problemer med overlappende delproblemer og optimal delstruktur ved å beregne hvert delproblem én gang og gjenbruke resultatet. De to stilene er memoization (top-down) og tabulation (bottom-up).
Ideen
Naiv rekursjon beregner de samme delproblemene eksponentielt. DP cacher dem, og kollapser eksponentielt arbeid til polynomisk.
