【动态规划-卡特兰数——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];
    }
};

代码解析

相关推荐
Dev7z1 分钟前
基于Matlab多算法的图像增强与客观质量评价系统
人工智能·算法·matlab
AA陈超1 分钟前
Lyra学习5:GameFeatureAction分析
c++·笔记·学习·ue5·lyra
YJlio2 分钟前
Autologon 学习笔记(9.13):安全启用“自动登录”的边界、风险与替代方案
笔记·学习·安全
青衫码上行2 分钟前
【JavaWeb 学习 | 第16篇】JPS介绍和基本语法
java·学习·web·jsp
Blossom.1183 分钟前
基于扩散模型的视频生成优化:从Stable Diffusion到AnimateDiff的显存革命
人工智能·深度学习·学习·决策树·搜索引擎·stable diffusion·音视频
xcLeigh3 分钟前
【新】Rust入门:基础语法应用
开发语言·算法·rust
curry____3034 分钟前
study in Dev-c++(string insert基本用法)(2025.12.2)
c++·string·insert
nono牛4 分钟前
C++ 语言全面教程 (基础入门)
java·jvm·c++
冬夜戏雪4 分钟前
【Java学习日记】【2025.12.2】【2/60】
java·开发语言·学习
小年糕是糕手7 分钟前
【C++同步练习】类和对象(一)
java·开发语言·javascript·数据结构·c++·算法·排序算法