La programmation dynamique (DP) résout les problèmes avec des sous-problèmes qui se chevauchent et une structure optimale en calculant chaque sous-problème une seule fois et en réutilisant le résultat. Les deux styles sont la mémoïsation (top-down) et la tabulation (bottom-up).
L'idée
La récursion naïve recalcule les mêmes sous-problèmes de façon exponentielle. La DP les met en cache, réduisant le travail exponentiel à polynomial.
