Dynamic Programming

it refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. While some decision problems cannot be taken apart this way, decisions that span several points in time do often break apart recursively. Likewise, in computer science, if a problem can be solved optimally by breaking it into sub-problems and then recursively finding the optimal solutions to the sub-problems, then it is said to have optimal substructure. - Wikipedia

Wilson was Secretary of Defense, and he actually had a pathological fear and hatred of the word “research” … dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities. - How Bellman came up with this name

Dynamic Programming vs. Divide-and-Conquer (2018)

caption

Learn to Solve Algorithmic Problems & Coding Challenges - youtube (5h)

See also

Written on January 28, 2021, Last update on July 3, 2021
algorithm recursive optimize complexity Fibonacci