0
点赞
收藏
分享

微信扫一扫

力扣算法学习day27-3

南柯Taylor 2022-02-17 阅读 38

文章目录

力扣算法学习day27-3

96-不同的二叉搜索树

题目

image-20220216215120852

代码实现

class Solution {
    public int numTrees(int n) {
        // dp 速度 0ms
        // 1.创建dp数组,确定下标含义
        int[] dp = new int[n+1];// 由题,dp[i]应该1到n构成的互不相同的二叉搜索树种数

        // 2.确定迭代公式:参考代码随想录,讲得很完美了。
        // 迭代公式:i > 0, dp[i] += dp[j-1] * dp[i-j] ,j <= i,j从1开始遍历。
        // 3.初始化
        dp[0] = 1;

        // 4.确定遍历顺序
        for(int i = 1;i < dp.length;i++){
            for(int j = 1;j <= i;j++){
                dp[i] += dp[j-1] * dp[i-j];
            }
        }

        // 5.检验dp数组结果是否符合
        // for(int i = 0;i < dp.length;i++){
        //     System.out.print(dp[i]+",");
        // }

        return dp[n];
    }
}

学习 背包问题理论基础

举报

相关推荐

力扣算法学习day20-3

力扣算法学习day41-3

力扣算法学习day13-1

力扣算法学习day12-2

0 条评论