+Dynamic Programming is a powerful [algorithm](/wiki/algorithm) design technique that solves complex problems by breaking them into simpler, overlapping subproblems. It elegantly stores the results of these subproblems to avoid redundant computations, a process often called [memoization](/wiki/memoization).
+## See also
+- [Greedy Algorithm](/wiki/greedy_algorithm)
+- [Divide and Conquer](/wiki/divide_and_conquer)
+- [Optimal Substructure](/wiki/optimal_substructure)
... 1 more lines