Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
很简单,就是求卡特兰数,直接公式求
int numTrees(int n) {
vector<int> num(n+1);
num[0]=1;
num[1]=1;
num[2]=2;
for(int j=3;j<=n;j++){
for(int i=0;i<j;i++){
num[j]+=num[j-i-1]*num[i];
}
}
num[0]=0;
return num[n];
}
本文介绍了一种计算不同结构的二叉搜索树数量的方法,利用卡特兰数公式进行求解,并提供了一个具体的C++实现示例。
304

被折叠的 条评论
为什么被折叠?



