给你一个整数 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];
}