标签:

public int numTrees(int n) {
if(n<=0)
return 0;
int[] res = new int[n+1];
res[0] = 1;
res[1] = 1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<i;j++)
{
res[i] += res[j]*res[i-j-1];
}
}
return res[n];
}这样的求数量的题目一般都easy想到用动态规划的解法,这道题的模型正好是卡特兰数的定义。当然这道题还能够用卡特兰数的通项公式来求解,这样时间复杂度就能够减少到O(n)。由于比較直接,这里就不列举代码了。Unique Binary Search Trees -- LeetCode
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4381846.html