给你一个整数 n
,求恰由 n
个节点组成且节点值从 1
到 n
互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
示例 1:
输入:n = 3 输出:5
示例 2:
输入:n = 1 输出:1
卡特兰数:f[n]=f[n-1]*f[0]+f[n-2]*f[1]....f[0]*f[n-1]
代码:
int numTrees(int n){
int f[20];
f[0]=f[1]=1;
for(int i=2;i<=n;i++)
{
f[i]=0;
for(int j=0;j<i;j++)
{
f[i]+=f[j]*f[i-1-j];
}
}
return f[n];
}