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

代码解析

相关推荐
ysn111112 分钟前
简单多边形三角剖分---耳切法(含源码)
算法
e疗AI产品之路3 分钟前
一文介绍Philips DXL心电图算法
算法·pan-tompkins·心电分析
grd45 分钟前
Electron for OpenHarmony 实战:Pagination 分页组件实现
python·学习
W|J8 分钟前
ES 学习笔记
笔记·学习·elasticsearch
YGGP9 分钟前
【Golang】LeetCode 21. 合并两个有序链表
leetcode·链表·golang
小袁顶风作案12 分钟前
leetcode力扣——135.分发糖果
算法·leetcode·职场和发展
山土成旧客14 分钟前
【Python学习打卡-Day35】从黑盒到“玻璃盒”:掌握PyTorch模型可视化、进度条与推理
pytorch·python·学习
@zulnger14 分钟前
python 学习笔记(循环)
笔记·python·学习
AAA.建材批发刘哥16 分钟前
02--C++ 类和对象上篇
开发语言·c++