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.
去网上搜n个二叉搜索树的递推公式或者Catalan数,可以由h(n)=C(2n,n)/(n+1)得到h(n)=[2n*(2n-1)*...(n+2)]/[n!].
class Solution {
public:
int numTrees(int n) {
long long facN=1,fac2N=1;
for(long long i=1;i<=n;i++)
facN*=i;
for(long long i=n+2;i<=2*n;i++)
fac2N*=i;
long long res=fac2N/facN;
return res;
}
};