Dynamic Programming¶
Dynamic Programming (DP) is an algorithmic technique for solving complex problems by breaking them down into simpler subproblems. It is used when subproblems overlap and have optimal substructure.
Topics¶
- Fibonacci Sequence - Re-solving Fibonacci using Memoization, Tabulation, and Matrix Exponentiation.
- Longest Common Subsequence - Finding the longest shared subsequence between two strings.
- Longest Increasing Subsequence - Finding the length of the longest sorted subsequence.
- 0/1 Knapsack - Solving the classic optimization problem using DP.
- Coin Change - Finding the minimum coins to reach a target sum.
- Matrix Chain Multiplication - Optimizing matrix multiplication order using the partitioning pattern.