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

代码解析

相关推荐
十五年专注C++开发30 分钟前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
‎ദ്ദിᵔ.˛.ᵔ₎43 分钟前
STL 栈 队列
开发语言·c++
此刻觐神1 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
憧憬从前1 小时前
算法学习记录DAY2
学习
2401_892070981 小时前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
郭涤生1 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿1 小时前
vector
c语言·开发语言·数据结构·c++·算法
babe小鑫1 小时前
会计岗位学习数据分析的价值分析
学习·数据挖掘·数据分析
千枫s1 小时前
电脑vm虚拟机kali linux安装shannon
学习·网络安全
zjnlswd1 小时前
tkinter学习案例--笔记代码
笔记·学习