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];
}