# Dynamic Programming Interview Questions and Practice Problems

A Dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions using a memory-based data structure (array, map,etc). Each of the subproblem solutions is indexed in some way, typically based on the values of its input parameters, so as to facilitate its lookup. So the next time the same subproblem occurs, instead of recomputing its solution, one simply looks up the previously computed solution, thereby saving computation time. This technique of storing solutions to subproblems instead of recomputing them is called memoization.

Here’s brilliant explanation given by Jonathan Paulson on Quora on concept of Dynamic Programming to a kid.

*writes down “1+1+1+1+1+1+1+1 =” on a sheet of paper*
“What’s that equal to?”
*counting* “Eight!”
*writes down another “1+” on the left*
*quickly* “Nine!”
“How’d you know it was nine so fast?”
“So you didn’t need to recount because you remembered there were eight! Dynamic
Programming is just a fancy way to say ‘remembering stuff to save time later'”

In this post, we have list out commonly asked interview questions that can be solved using Dynamic programming –

Thank you for being with us. 🙂