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

代码解析

相关推荐
学运维的Kysan几秒前
暑假运维学习打卡第二十九天8.29
学习
zbyyd21 分钟前
Linux 进程间通信学习笔记
linux·笔记·学习
小灰灰搞电子37 分钟前
C++ 引用折叠详解
c++
一条破秋裤1 小时前
02_软件安装与新建工程
学习
来了就未晚1 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习
GHL2842710901 小时前
用codex做一个简单技能学习
学习·ai
靠沿1 小时前
贪心算法专题(二)
算法·贪心算法
布莱克6051 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
猎头南楼2 小时前
具身智能模型部署方向的能力要求与技术栈梳理
人工智能·深度学习·算法
西西弗Sisyphus2 小时前
模型训练 不同批次大小与学习率下的训练损失对比(2)
学习·batchsize·lr·learning rate