Dynamic Programming
Factorial using DP
Memoization
/*package whatever //do not write package name here */
import java.io.*;
import java.util.*;
import static java.lang.System.out;
class GFG {
static int[] memo;
static int fib(int n) {
if (memo[n] == -1) {
int res;
if (n == 0 || n == 1)
return n;
else {
res = fib(n - 1) + fib(n - 2);
}
memo[n] = res;
}
return memo[n];
}
public static void main(String[] args) {
int n = 5;
memo = new int[n + 1];
Arrays.fill(memo, -1);
out.println(fib(n));
}
}Tabulation
Longest Common Subsequence (Part 1)
Memoization
Tabulation
Variation of LCS
Coin Change Count Combinations
Edit Distance Problem
Edit Distance Problem DP
Longest Increasing Subsequence Problem
Longest Increasing Subsequence O( nlog(n) )
Variation of LIS
Maximum Cuts
Minimum coins to make a value
Minimum Jumps to reach at end
0-1 knapsack problem
0-1 knapsack problem DP Solution
Optimal Strategy for a Game
Egg Dropping Puzzle - Part 1
Egg Dropping Puzzle - Part 2
Count BSTs with n keys
Maximum sum with no two consecutive
DP-Code in O(1) space
DP-Code in O(n) space
Subset Sum Problem (Recursive Solution)
Subset Sum Problem (DP Solution)
Matrix Chain Multiplication
Matrix Chain Multiplication (DP Solution)
Palindrome Partitioning
Allocate Minimum Pages (Naive Method)
Allocate Minimum Pages (DP Solution)
Last updated