Dynamic Programming: Easy to Hard Problems
Easy
- Climbing Stairs (Finds the number of ways to climb stairs with given steps)
- House Robber (Determines the maximum amount of money that can be robbed without alerting the police)
- Best Time to Buy and Sell Stock II (Finds the maximum profit from multiple transactions)
- Fibonacci Number (Computes the nth Fibonacci number)
- Maximum Subarray (Finds the contiguous subarray with the maximum sum)
Medium
- Longest Common Subsequence (Finds the longest common subsequence between two strings)
- Edit Distance (Calculates the minimum edit distance between two strings)
- Coin Change (Finds the minimum number of coins required to make a given amount)
- Partition Equal Subset Sum (Determines if a set can be partitioned into two subsets with equal sum)
- 0/1 Knapsack Problem (Solves the 0/1 knapsack problem with given weights and values)
Hard
- Edit Distance (Calculates the minimum number of operations required to convert one string to another)
- Longest Increasing Subsequence (Finds the longest increasing subsequence in an array)
- Word Break II (Finds all possible sentences that can be formed from a given string using a dictionary)
- Integer Partition (Finds the number of ways to partition a number into distinct positive integers)
- Wildcards Matching (Determines if a string matches a pattern with wildcards)