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

代码解析

相关推荐
LXS_3572 分钟前
STL - 函数对象
开发语言·c++·算法
aini_lovee5 分钟前
基于粒子群算法(PSO)优化BP神经网络权值与阈值的实现
神经网络·算法
专注于ai算法的踩坑小达人9 分钟前
C++变量全面总结
c++·qt
老鼠只爱大米14 分钟前
LeetCode经典算法面试题 #230:二叉搜索树中第K小的元素(递归法、迭代法、Morris等多种实现方案详细解析)
算法·leetcode·二叉搜索树·二叉树遍历·第k小的元素·morris遍历
星期五不见面16 分钟前
嵌入式学习!(一)C++学习-leetcode(21)-26/1/29
学习·算法·leetcode
阿猿收手吧!17 分钟前
【C++】atmoic原子操作与并发安全全解析
开发语言·c++·安全
2501_9413220322 分钟前
通信设备零部件识别与检测基于改进YOLOv8-HAFB-2算法实现
算法·yolo
凯子坚持 c26 分钟前
C++基于微服务脚手架的视频点播系统---客户端(1)
开发语言·c++·微服务
modelmd30 分钟前
【递归算法】汉诺塔
python·算法
CSDN_RTKLIB31 分钟前
SharedPtr测试步骤说明
c++