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

代码解析

相关推荐
长路 ㅤ   7 分钟前
Java后端技术博客汇总文档
分布式·算法·技术分享·编程学习·java后端
山河木马12 分钟前
前端学习C++之:.h(.hpp)与.cpp文件
前端·javascript·c++
2401_8919573113 分钟前
list的一些特性(C++)
开发语言·c++
秋说22 分钟前
【PTA数据结构 | C语言版】两枚硬币
c语言·数据结构·算法
qq_5139704434 分钟前
力扣 hot100 Day37
算法·leetcode
不見星空1 小时前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode
我爱Jack1 小时前
时间与空间复杂度详解:算法效率的度量衡
java·开发语言·算法
米饭「」1 小时前
C++AVL树
java·开发语言·c++
心愿许得无限大2 小时前
Qt 常用界面组件
开发语言·c++·qt
GiraKoo2 小时前
【GiraKoo】C++17的新特性
c++