Catalan numbers algorithm is Dynamic Programming algorithm.
In combinatorial mathematics, the Catalan numbers form a sequence of natural numbers that occur in various counting problems, often involving recursively-defined objects. The Catalan numbers on nonnegative integers n are a set of numbers that arise in tree enumeration problems of the type, 'In how many ways can a regular n-gon be divided into n-2 triangles if different orientations are counted separately?'
Application of Catalan Number Algorithm:
Using zero-based numbering, the nth Catalan number is given directly in terms of binomial coefficients by the following equation.
Example of Catalan Number:
Here value of n = 4.(Best Example - From Wikipedia)
Auxiliary Space: O(n)
Time Complexity: O(n^2)
public class CatalanNumber
{
public static int Main(int number)
{
int result = 0;
if (number <= 1) return 1;
for (int i = 0; i < number; i++)
{
result += Main(i)*Main(number - i - 1);
}
return result;
}
}