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

1.题目解析

题目来源

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

测试用例

2.算法原理

1.状态表示

2.状态转移方程

3.初始化

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

4.填表顺序

从前向后

5.返回值

根据状态表示返回dpn

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];
    }
};

代码解析

相关推荐
字节高级特工3 分钟前
智能指针原理与使用场景全解析
开发语言·c++·算法
珊瑚里的鱼4 分钟前
【动态规划】买卖股票的最佳时机Ⅲ
算法·动态规划
逻辑星辰10 分钟前
x-ds-pow-response逆向分析
开发语言·人工智能·python·深度学习·算法
AI棒棒牛12 分钟前
YOLO26 全网独家改进创新: MIT 2025 振荡状态空间模型:引入可学习的阻尼机制,独家创新!
人工智能·学习·目标检测·计算机视觉·yolo26
CQU_JIAKE20 分钟前
6.9【aAAA]
算法
Lewiis25 分钟前
白话桶排序
数据结构·算法·golang·排序算法
留白_25 分钟前
pandas进阶学习
学习·pandas
非生而知之者27 分钟前
基于灰狼算法优化的电量预测
python·算法·群体智能算法·电力预测
ywl47081208731 分钟前
‌HashMap 1.8 的扩容机制(Resize)‌
算法·哈希算法
插件开发35 分钟前
CUDA11-VS2015安装-工具链测试-Helloworld程序
c++·gpu·cuda