All postsDynamic Programming ExamplesAugust 9, 202629 min readexamplesdynamic programmingExamples for Common Dynamic Programming ExamplesIndexDynamic Programming Interview PatternsFrom Recursion → Memoization → Tabulation → Space Optimization1. The Universal DP Process2. Pattern 1 — 1D / Linear DPWhen to recognize itProblem 1: Climbing StairsRecursiveMemoizedBottom-UpSpace OptimizedProblem 2: House RobberRecursiveMemoizedBottom-UpSpace OptimizedProblem 3: House Robber IIProblem 4: Decode Ways3. Pattern 2 — 0/1 KnapsackRecognitionProblem 5: 0/1 KnapsackRecursiveMemoizedBottom-UpProblem 6: Subset SumRecursiveMemoizedBottom-UpImportantProblem 7: Equal Sum PartitionProblem 8: Count Subsets With Sum KRecursiveBottom-UpProblem 9: Minimum Subset Sum DifferenceProblem 10: Target Sum4. Pattern 3 — Unbounded KnapsackProblem 11: Coin ChangeRecursiveMemoizedBottom-UpProblem 12: Coin Change IIProblem 13: Rod Cutting5. Pattern 4 — LCS / Two-Sequence DPRecognitionProblem 14: Longest Common SubsequenceCharacters matchCharacters don't matchRecursiveMemoizedBottom-UpProblem 15: Longest Common SubstringProblem 16: Longest Palindromic SubsequenceProblem 17: Minimum Insertions to Make PalindromeProblem 18: Shortest Common SupersequenceProblem 19: Edit DistanceRecursiveMemoizedBottom-Up6. Pattern 5 — Grid DPRecognitionProblem 20: Unique PathsRecursiveMemoizedBottom-UpProblem 21: Unique Paths IIProblem 22: Minimum Path SumRecursiveMemoizedBottom-Up7. Pattern 6 — Longest Increasing SubsequenceRecognitionProblem 23: Longest Increasing Subsequence8. Pattern 7 — State Machine DPRecognitionProblem 24: Best Time to Buy and Sell Stock IIRecursiveMemoizedBottom-UpProblem 25: Stock With Cooldown9. Pattern 8 — Interval / MCM DPRecognitionProblem 26: Matrix Chain MultiplicationRecursiveMemoizedBottom-UpProblem 27: Burst Balloons10. Pattern 9 — Tree DPRecognitionProblem 28: Diameter of Binary TreeProblem 29: Maximum Path SumProblem 30: House Robber III11. Pattern 10 — DAG / Graph DPRecognitionProblem 31: Longest Path in DAG12. Pattern 11 — Bitmask DPRecognitionProblem 32: Traveling Salesman13. Pattern 12 — Digit DPRecognitionProblem 33: Count Numbers With a Given Digit Sum14. Pattern 13 — Partition / String DPProblem 34: Word BreakRecursiveMemoizedBottom-Up15. The Interview DP Problem Map1D DP0/1 KnapsackUnbounded KnapsackLCS / String DPGrid DPLISState Machine DPInterval DPTree DPGraph / DAG DPBitmask DPDigit DP16. The DP Recognition Cheat Sheet17. The Most Important Transformation18. The DP Learning OrderLevel 1 — FoundationLevel 2 — KnapsackLevel 3 — Two-Dimensional DPLevel 4 — Advanced StructuresLevel 5 — Advanced Interview / HardFinal Mental ModelRelatedDynamic Programming Pattern39 min readpatterndynamic programming