Catalan's Number Memoization
import java.util.*;
public class CatalansNumberMemoization {
public static int Catalan(int n, int dp[]) {
if (n == 0 || n == 1) {
return 1;
}
if (dp[n] != -1) {
return dp[n];
}
int ans = 0;
for (int i = 0; i < n; i++) {
ans += Catalan(i, dp) * Catalan(n - i - 1, dp);
}
return dp[n] = ans;
}
public static void main(String[] args) {
int n = 4;
int dp[] = new int[n + 1];
Arrays.fill(dp, -1);
System.out.println("Catalan's Number:" + Catalan(n, dp));
}
}
Comments
Post a Comment