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

代码解析

相关推荐
ra90fy5 分钟前
B3873 [GESP202309 六级] 小杨买饮料
c++·算法
尘客-追梦7 分钟前
qmake / jom / 影子构建:把编译管起来
开发语言·c++·qt
Omics Pro14 分钟前
北理工李荣华:AI虚拟细胞证据多模态推理基准
数据库·人工智能·算法·机器学习·自然语言处理
Cccp.12315 分钟前
【leetcode】(九)哈希函数与哈希表
数据结构·leetcode·哈希算法
m0_7341724217 分钟前
Python用zip配对前先检查长度
python·学习
乌暮18 分钟前
拆解网页的底层逻辑:用费曼学习法讲透 HTML 与 CSS
前端·css·学习·html
xieliyu.18 分钟前
LeetCode 1419 数青蛙:状态模拟求最少青蛙数量|Java 题解
java·算法·leetcode
acd1200921 分钟前
线上偶发 499 错误,并非后端服务异常
算法
Nil20826 分钟前
leetcode 45跳跃游戏Ⅱ
算法·leetcode·游戏
Zootopia62628 分钟前
论文复现|五机编队任务链
c语言·c++·考研·无人机·创业创新·学习方法·高考