Dynamic programming
Break a problem into overlapping subproblems, define a state, and build answers from smaller ones.
Solved
0/18
1Climbing Stairs1D DP · fibonacciEasy2Min Cost Climbing Stairs1D DPEasy3N-th Tribonacci Number1D DPEasy4House Robber1D DPMedium5Decode Ways1D DP · stringMedium6Word Break1D DP · stringMedium7Coin Changeunbounded knapsackMedium8Coin Change IIunbounded knapsack · countingMedium9Partition Equal Subset Sum0/1 knapsackMedium10Target Sum0/1 knapsack · countingMedium11Longest Increasing SubsequenceLIS · binary searchMedium12Longest Common Subsequence2D DP · LCSMedium13Edit Distance2D DP · LCSMedium14Unique Pathsgrid DPMedium15Minimum Path Sumgrid DPMedium16Palindrome Partitioning IIpalindrome DP · partition DPHard17Best Time to Buy and Sell Stock IIIstate machine DP · stockHard18Burst Balloonsinterval DPHard