Dynamic Programming
Tabulate overlapping subproblems for optimal answers.
1-D tables
A single dp array filled left to right.
- Climbing Stairs (Easy)
2-D tables
A grid dp filled row by row, then traced back.
- Edit Distance (Medium)
Checkpoint
A graded check on state, transition, order, and reconstruction.
Reference problems
27 imported reference solutions
- Check if An Original String Exists Given Two Encoded Strings (Hard)
- Coin Change (Medium)
- Coin Change II (Medium)
- Filling Bookcase Shelves (Medium)
- 0/1 Knapsack (Medium)
- Perfect Squares (Medium)
- Longest Common Subsequence (Medium)
- Longest Increasing Subsequence (Medium)
- Longest Palindromic Subsequence (Medium)
- Longest String Chain (Medium)
- Longest Valid Parentheses (Hard)
- Maximal Rectangle (Hard)
- Maximal Square (Medium)
- Maximum AND Sum of Array (Hard)
- Maximum Number of Points with Cost (Medium)
- Minimum Path Sum (Medium)
- Minimum Deletions to Make String Balanced (Medium)
- Distinct Subsequences (Hard)
- Unique Paths (Medium)
- Decode Ways (Medium)
- Partition Array Into Two Arrays to Minimize Sum Difference (Hard)
- Race Car (Hard)
- Range Sum Query 2D - Immutable (Medium)
- Regular Expression Matching (Hard)
- Sentence Screen Fitting (Medium)
- Student Attendance Record II (Hard)
- Valid Palindrome III (Hard)
Pattern Quest
Practice recognizing dynamic programming problem shapes.