Add Catalan Number DP implementation in Java #554
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Catalan numbers are a sequence of natural numbers that frequently appear in various counting problems in combinatorics. They are named after the Belgian mathematician Eugène Charles Catalan.
The sequence starts: 1, 1, 2, 5, 14, 42, 132, ...
In essence, the n
th
Catalan number provides the solution to many problems that involve a recursive structure. Some classic examples include:
Balanced Parentheses: The number of ways to form a correctly matched sequence with n pairs of parentheses. For n=3, there are 5 ways: ((())), ()()(), (())(), ()(()), (()()).
Binary Search Trees: The number of unique binary search trees that can be formed with n keys.
Polygon Triangulation: The number of ways to divide a convex polygon with n+2 sides into triangles by connecting its vertices.
The calculation for each number in the sequence depends on all the numbers that came before it, which is why it is often solved using dynamic programming.