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

posted @ 2019-11-13 16:50  欣姐姐  阅读(97)  评论(0编辑  收藏  举报