Bei der Strategie der dynamischen Programmierung (engl.: dynamic programming) zur Lösung eines Problems werden Teillösungen, die im Verlauf der Berechnung entstehen, gespeichert, um sie später weiter­zuverwenden.

Diese Strategie ist immer dann sinnvoll, wenn sich die Lösung aus Teillösungen zusammensetzt, die im Laufe der Berechnung gefunden werden, und wenn diese Teillösungen später mehrfach gebraucht werden.

Der wenig aussage­kräftige Begriff dynamische Programmierung ist historisch bedingt.