Unique Binary Search Trees

时间:2015-03-14 16:38:31   收藏:0   阅读:268
/*
    卡特兰数,只记得递推公式,
    h(n) = h(n-1)*(4*n-2)/(n+1),
    h(n) = C(2*n,n)/(n+1),
    h(n) = C(2*n,n) - C(2*n,n+1);
*/

class Solution {
public:
    int C(int n,int m){
        int ans = 1,temp = m;
        for(int i = n ; i >=n-m+1; i--){
            ans*=i;
            while(temp>1&&ans%temp ==0){
                ans/=temp;temp--;
            }
        }
        return ans;
    }
    int numTrees(int n) {
        return C(2*n,n)/(n+1);
    }
};

 

原文:http://www.cnblogs.com/llei1573/p/4337587.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!