Dynamic Programming

If you can recurse it, you can iterate it. And if you can iterate it, you can recurse it.
Dynamic programming is basically rewriting the above statement as:
If you can recurse it, you can iterate it and vice versa.
Table of contents