【动态规划-卡特兰数——96.不同的二叉搜索树】

1.题目解析

题目来源

|-------------------------------------------------------------------------------------------------------------------|
| 96.不同的二叉搜索树------力扣 |

测试用例

2.算法原理

1.状态表示

2.状态转移方程

3.初始化

需要用到前面位置的值,则需要初始化dp[0]为1,方便后续的填表

4.填表顺序

从前向后

5.返回值

根据状态表示返回dp[n]

3.实战代码

cpp 复制代码
class Solution {
public:
    int numTrees(int n) 
    {
        vector<int> dp(n+1);
        dp[0] = 1;
        for(int i = 1;i <= n;i++)
        {
            for(int j = 1;j <= i;j++)
            {
                dp[i] += dp[j-1] * dp[i-j];
            }
        }    
        return dp[n];
    }
};

代码解析

相关推荐
电子云与长程纠缠6 小时前
Godot学习05 - 播放与分离FBX动画
学习·游戏引擎·godot
蒸蒸yyyyzwd6 小时前
day3学习笔记
笔记·学习
lvxiangyu117 小时前
MPPI 算法证明重构:基于无穷维泛函变分与 KL 散度的构造性推导
算法·重构·最优控制·随机最优控制
2301_818419017 小时前
C++中的解释器模式变体
开发语言·c++·算法
爱学习的大牛1237 小时前
windows tcpview 类似功能 c++
c++
ab1515177 小时前
3.25完成*23、*24、*28、*30、*33、*38、*39、*40
算法
red_redemption7 小时前
自由学习记录(143)
学习
颜酱7 小时前
回溯算法实战练习(3)
javascript·后端·算法
biter down8 小时前
C++11 统一列表初始化+std::initializer_list
开发语言·c++
楼田莉子8 小时前
MySQL数据库:MySQL的数据类型
数据库·学习·mysql