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 weiterzuverwenden.
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 aussagekräftige Begriff dynamische Programmierung ist historisch bedingt.