题目:
Given n, how many structurally unique BST‘s (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST‘s.
   1         3     3      2      1
    \       /     /      / \           3     2     1      1   3      2
    /     /       \                    2     1         2                 3
思路:
依次把每个节点作为根节点,左边节点作为左子树,右边节点作为右子树,那么总的数目等于左子树数目*右子树数目
/** * @param {number} n * @return {number} */ var numTrees = function(n) { if(n==0){ return 1; } if(n==1){ return 1; } var count=[]; var temp; count[0]=1; count[1]=1; count[2]=2; for(var i=3;i<=n;i++){ temp=0; for(var k=0;k<i;k++){ temp+=count[k]*count[i-k-1] } count[i]=temp; } return count[n]; };
原文:http://www.cnblogs.com/shytong/p/5164207.html