Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST's.
1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3此即为卡特兰数C(n),其值为1/(n+1) * A(2*n)/(A(n)*A(n))
class Solution:
# @return an integer
def f( self,n ):
sum = 1
i = n
while i > 1:
sum = sum * i
i = i - 1
return sum
def numTrees(self, n):
return self.f( 2 * n ) / ( self.f( n ) * self.f( n ) ) / ( n + 1 )