leetcode——96. 不同的二叉搜索树

-------0

class Solution:
    def numTrees(self, n: int) -> int:
        dp = [0] * (n + 1)
        dp[0] = 1
        dp[1] = 1
        
        for i in range(2, n + 1):
            for j in range(i):
                dp[i] += dp[j] * dp[i - j - 1]
    
        return dp[-1]
执行用时 :24 ms, 在所有 python 提交中击败了42.63%的用户
内存消耗 :11.7 MB, 在所有 python 提交中击败了40.74%的用户
 
——2019.11.13
 

动态规划。
自己还是没能动态出来,没找到规律。
public int numTrees(int n) {
        int[] f = new int[n+1];
        f[0] = 1;
        f[1] = 1;
        for(int i = 2;i<=n;i++){
            for(int k = 1;k<=i;k++){
                f[i] += f[k-1] * f[i-k];
            }
        }
        return f[n];
    }

——2020.7.1

我的前方是万里征途,星辰大海!!
原文地址:https://www.cnblogs.com/taoyuxin/p/11850873.html