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

代码解析

相关推荐
xyx-3v1 分钟前
SPI四种工作模式
stm32·单片机·嵌入式硬件·学习
lingchen19062 分钟前
多项式的积分
算法
老虎06276 分钟前
黑马点评学习笔记02(Mabatis—plus)
笔记·学习
1白天的黑夜114 分钟前
递归-21.合并两个有序链表-力扣(LeetCode)
c++·leetcode·链表·递归
【0931】16 分钟前
2024.6卷一阅读短语
学习
adny-code17 分钟前
[fastgrind] 一个轻量级C++内存监控及可视化开源库
c++·内存·性能分析·高性能计算
坚持编程的菜鸟20 分钟前
LeetCode每日一题——在区间范围内统计奇数数目
c语言·算法·leetcode
qiuiuiu41326 分钟前
正点原子RK3568学习日志6-驱动模块传参
linux·c语言·开发语言·单片机·学习
xiaolu28930 分钟前
k8s学习 - 命令记录
学习·docker·kubernetes
进击的圆儿37 分钟前
分治算法_快速排序专题总结-----分治
算法·排序算法·分治·快排·大根堆·小根堆