llllmz

导航

96. 不同的二叉搜索树c

int numTrees(int n) {
    int* dp=(int*)malloc(sizeof(int)*(n+3));
    for(int i=0;i<n+3;i++) dp[i]=0;
    dp[0]=1,dp[1]=1;
    for(int i=2;i<=n;i++){
        for(int j=1;j<=i;j++){//左子树j-1 个,右子树i-j个
            dp[i]+=dp[j-1]*dp[i-j];
        }
    }
    return dp[n];
}

結果:

posted on 2024-03-11 23:41  神奇的萝卜丝  阅读(34)  评论(0)    收藏  举报