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

代码解析

相关推荐
吃好睡好便好12 小时前
泰戈尔的诗歌7
学习·生活
QiLinkOS13 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议
星夜夏空9913 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
-To be number.wan14 小时前
数据库系统 | 数据库安全与完整性
数据库·学习
wabs66614 小时前
关于动态规划【力扣1143.最长公共子序列的思考】
算法·leetcode·动态规划
剑挑星河月14 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
czysoft14 小时前
se被限速
科技·学习·it·技术·魔法·先进·领先
Robot_Nav14 小时前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
子不语18015 小时前
从0开始学习S7-1200+ET200SP(3)——两台S7-1200通过TCP连接
网络协议·学习·tcp/ip
mingo_敏15 小时前
Mean-Teacher 均值教师自训练框架详解
算法·均值算法