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

代码解析

相关推荐
Yupureki几秒前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
无敌秋3 分钟前
C++ public, private, protected类的继承
开发语言·c++
m0_579393667 分钟前
C++代码混淆与保护
开发语言·c++·算法
qq_148115379 分钟前
C++中的享元模式实战
开发语言·c++·算法
夜悊11 分钟前
指针、引用和常量的关系
c++
Yzzz-F15 分钟前
Problem - D2 - Codeforces
算法
烟花巷子15 分钟前
C++中的解释器模式
开发语言·c++·算法
暮冬-  Gentle°20 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
Edward1111111121 分钟前
3月24 内部类
学习
txinyu的博客21 分钟前
解析muduo源码之 HttpRequest.h
c++