Description
In this course, you will learn :
- Simple techniques for dealing with any DP issue. Instead of simply trying to memorise solutions, you'll be guided through five underlying DP patterns that can then be applied to 35+ DP problems.
- A recursive brute-force solution – this is the best way to begin solving a DP problem!
- Use the advanced DP methods of Memoization and Tabulation once we've found a recursive solution.
Syllabus :
1. 0/1 Knapsack
- 0/1 Knapsack
- Equal Subset Sum Partition
- Subset Sum
- Minimum Subset Sum Difference
- Count of Subset Sum
- Target Sum
2. Unbounded Knapsack
- Unbounded Knapsack
- Rod Cutting
- Coin Change
- Minimum Coin Change
- Maximum Ribbon Cut
3. Fibonacci Numbers
- Fibonacci numbers
- Staircase
- Number factors
- Minimum jumps to reach the end
- Minimum jumps with fee
- House thief
4. Palindromic Subsequence
- Longest Palindromic Subsequence
- Longest Palindromic Substring
- Count of Palindromic Substrings
- Minimum Deletions in a String to make it a Palindrome
- Palindromic Partitioning
5. Longest Common Substring
- Longest Common Substring
- Longest Common Subsequence
- Minimum Deletions & Insertions to Transform a String into another
- Longest Increasing Subsequence
- Maximum Sum Increasing Subsequence
- Shortest Common Super-sequence
- Minimum Deletions to Make a Sequence Sorted
- Longest Repeating Subsequence
- Subsequence Pattern Matching
- Longest Bitonic Subsequence
- Longest Alternating Subsequence
- Edit Distance
- Strings Interleaving