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. The next time the same subproblem occurs, instead of recomputing its solution, one simply looks up the previously computed solution, thereby saving computation time.
Below are the top 10 popular problems that can easily be solved using Dynamic programming and commonly asked in technical interviews ?
- Longest Common Subsequence
- Shortest Common Supersequence
- Longest Increasing Subsequence problem
- The Levenshtein distance (Edit distance) problem
- Matrix Chain Multiplication
- 0?1 Knapsack problem
- Partition problem
- Rod Cutting
- Coin change problem
- Word Break Problem