Dynamic programming is beautiful because we usually want to solve problem backwards. There is a 5 mins Ted talk discussing Working backward to solve problems
- Can this be done? [Or] What is the minimum cost of accomplishing this?
- How many solutions are there?
- Enumerate all the solutions?
- Fibonacci
- Maximum Sum Subsequence Non-Adjacent
- Knapsack Problem
- 0/1 Knapsack Problem
- Subset Sum
- Partition Equal Subset Sum
- [Subset Sum (Contains Negative Numbers)]
- Target Sum
- Coin Changing
- Frog Jump
- Combination Sum IV
- Perfect Squares
- Integer Break
- 0/1 Knapsack Problem
- Matrix Chain Mutiplication
- Burst Balloon
- Remove Boxes (Hard)
(sub-problem is not self contained) - Counting Boolean Parenthesizations
- Strange Printer
- Floyd-Warshall Algorithm
- Palindrome Partition
- Longest Valid Parentheses
- Cutting Rod
- Word Break
- Concatenated Words
- Longest Increasing Subsequence
- Longest Common Substring
- Unique Path
- Minimum Edit Distance
- Largest Sum Contiguous Subarray
- Maximum Sub Square Matrix
- Sum Query in 2D immutable Array
- Text Justification
- Maximum Subsquare With Sides as X
- Egg Dropping
- Optimal Strategy Game Pick from Ends of Array
- Optimal Binary Search Tree
- 322. Coin Change
- 518. Coin Change 2
- 300. Longest Increasing Subsequence
- 673. Number of Longest Increasing Subsequence
- 516. Longest Palindromic Subsequence
- 139. Word Break
- 416. Partition Equal Subset Sum
- 53. Maximum Subarray
- 64. Minimum Path Sum
- 55. Jump Game
- 188. Best Time to Buy and Sell Stock IV
- 650. 2 Keys Keyboard
- 647. Palindromic Substrings
- 646. Maxium Length of Pair Chain
- 576. Out of Boundary Paths
- 688. Knight Probability in Chessboard
- 44. Wildcard Matching
- 467. Unique Substrings in Wraparound String
- 368. Largest Divisible Subset
- 377. Combination Sum IV
- 494. Target Sum
- 63. Unique Paths II
- 304. Range Sum Query 2D - Immutable
- 221. Maximal Square
- 70. Climbing Stairs
- 338. Counting Bits
- 279. Perfect Squares
- 120. Triangle
- 343. Integer Break
- 198. House Robber
- 213. House Robber II
- 256. Paint House
- 361. Bomb Enemy
- 96. Unique Binary Search Trees
- 95. Unique Binary Search Trees II
- 638. Shopping Offers
- 464. Can I Win
- 120. Triangle
- 712. Minimum ASCII Delete Sum for Two Strings
- 474. Ones and Zeroes
- 152. Maximum Product Subarray
- 486. Predict the Winner
- 72. Edit Distance
- 312. Burst Balloons
- 403. Frog Jump
- 10. Regular Expression Matching
- 689. Maximum Sum of 3 Non-Overlapping Subarrays
- 664. Strange Printer
- 115. Distinct Subsequences
- 32. Longest Valid Parentheses
- 85. Maximal Rectangle
- 97. Interleaving String
- 132. Palindrome Partitioning II
- 174. Dungeon Game
- 354. Russian Doll Envelopes
- 363. Max Sum of Rectangle No Larger Than K
- 410. Split Array Largest Sum
- 514. Freedom Trail
- 446. Arithmetic Slices II - Subsequence
- 472. Concatenated Words
- 546. Remove Boxes
- 91. Decode Ways
- 639. Decode Ways II
- 68. Text Justification
- Minimum Ways of Changing Coins
- Weighted Job Scheduling (Largest Increasing Subsequence)
- Egg Dropping Problem
- Cutting Rod
- Counting Boolean Parenthesization Problem
- Maxium Sum Rectangular Submatrix in Matrix
- Minimum Partition
- Longest Path in Matrix
- Optimal Strategy for a Game
- Boolean Parenthesization
- Maximum Product Cutting Rod
- Dice Throw Problem