| 1 |
Knapsack Recursion |
📘 |
O(2^n) |
O(1) |
| 2 |
Knapsack Memoization-Top-Down |
📘 |
O(N*W) |
O(N*W) |
| 3 |
Knapsack Bottom-Up(DP) |
📘 |
O(N*W) |
O(N*W) |
| 4 |
Subset sum(Knapsack Variation) |
📘 |
O(N*W) |
O(N*W) |
| 5 |
Equal sum partition(subset sum & Knapsack Variation) |
📘 |
O(N*W) |
O(N*W) |
| 6 |
Count of Subsets with given Sum(subset sum & Knapsack Variation) |
📘 |
O(N*W) |
O(N*W) |
| 7 |
Minimum subset sum difference |
📘 |
O(N*W) |
O(N*W) |
| 8 |
Count the number of subset with given difference |
📘 |
O(N*W) |
O(N*W) |
| 9 |
Target sum(Leetcode) |
📘 |
O(N*W) |
O(N*W) |
| 10 |
Unbounded Knapsack |
📘 |
O(N*W) |
O(N*W) |
| 11 |
Rod cutting problem(Unbounded Knapsack) |
📘 |
O(N*W) |
O(N*W) |
| 12 |
Coin change problem : maximum no of ways |
📘 |
O(N*W) |
O(N*W) |
| 13 |
Coin change problem: Minimum number of coin |
📘 |
O(N*W) |
O(N*W) |
| 14 |
Longest Common Subsequence Recursive |
📘 |
O(N*W) |
O(N*W) |
| 15 |
Longest Common Subsequence Top down (Memoization) |
📘 |
O(N*W) |
O(N*W) |
| 16 |
Longest Common Subsequence Bottom Up(DP) |
📘 |
O(N*W) |
O(N*W) |
| 17 |
Longest Common Substring |
📘 |
O(N*W) |
O(N*W) |
| 18 |
Print Longest Common Subsequence |
📘 |
O(N*W) |
O(N*W) |
| 19 |
Shortest Common Supersequence |
📘 |
O(N*W) |
O(N*W) |
| 20 |
Minimum insertion & deletion to convert a to b |
📘 |
O(N*W) |
O(N*W) |
| 21 |
Longest Palindromic Subsequence |
📘 |
O(N*W) |
O(N*W) |
| 22 |
Minimum number of deletions to make a string palindrome |
📘 |
O(N*W) |
O(N*W) |
| 23 |
Print Shortest Common Supersequence |
📘 |
O(N*W) |
O(N*W) |
| 24 |
Longest repeating subsequence |
📘 |
O(N*W) |
O(N*W) |
| 25 |
Sequence pattern matching |
📘 |
O(N*W) |
O(N*W) |
| 26 |
Minimum Number of insertion to make a string palindrome |
📘 |
O(N*W) |
O(N*W) |
| 27 |
Matrix Chain Multiplication Recursive |
📘 |
O(N*W) |
O(N*W) |
| 28 |
Matrix Chain Multiplication Top Down (Memoization) |
📘 |
O(N*W) |
O(N*W) |
| 29 |
Palindrome Partitioning Recursive |
📘 |
O(N*W) |
O(N*W) |
| 30 |
Palindrome Partitioning Memoization |
📘 |
O(N*W) |
O(N*W) |
| 31 |
Palindrome Partitioning Memoized optimization |
📘 |
O(N*W) |
O(N*W) |
| 32 |
Evaluate Expression to true Recursive |
📘 |
O(N*W) |
O(N*W) |
| 33 |
Evaluate expression to true memoization using map |
📘 |
O(N*W) |
O(N*W) |
| 34 |
Evaluate expression to true memoization using 3d array |
📘 |
O(N*W) |
O(N*W) |
| 35 |
Scramble string recursive |
📘 |
O(N*W) |
O(N*W) |
| 36 |
Scramble string Top Down |
📘 |
O(N*W) |
O(N*W) |
| 37 |
Egg dropping problem recursive |
📘 |
O(N*W) |
O(N*W) |
| 38 |
Egg dropping problem Top Down(memoization) |
📘 |
O(N*W) |
O(N*W) |
| 39 |
Egg dropping problem memoization optimization |
📘 |
O(N*W) |
O(N*W) |
| 40 |
Dynamic programming on trees Syntax |
📘 |
O(N*W) |
O(N*W) |
| 41 |
Diameter of binary tree |
📘 |
O(N*W) |
O(N*W) |
| 42 |
Max path sum from any node to any |
📘 |
O(N*W) |
O(N*W) |
| 43 |
Max path sum from leaf to leaf |
📘 |
O(N*W) |
O(N*W) |