There are three useful distinctions between dynamic programming and a conventional divide-and-conquer algorithm.
These are paradigm-level distinctions, not mutually exclusive definitions: a recursive algorithm can use memoization, and dynamic programming need not be implemented iteratively. For optimization, the dynamic programming state and optimal substructure justify combining stored optimum values; storing repeated work alone does not prove the state is sufficient.

Articles by others on the same topic (0)

There are currently no matching articles.