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

代码解析

相关推荐
伊玛目的门徒28 分钟前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
Jerry1 小时前
LeetCode 226. 翻转二叉树
算法
想做小南娘,发现自己是女生喵2 小时前
【无标题】
数据结构·算法
xian_wwq3 小时前
【学习笔记】模型权重管理:Safetensors与私有化Hub(23/35)
笔记·学习
其实防守也摸鱼3 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
ctrl_v助手3 小时前
Halcon学习笔记2
人工智能·笔记·学习
Kx_Triumphs4 小时前
HDU4348 To the moon(主席树区间修改模板)
算法·题解
YUS云生4 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
旖-旎4 小时前
《LeetCode647 回文子串 || LeetCode 5 最长回文子串》
c++·算法·leetcode·动态规划·哈希算法