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

代码解析

相关推荐
liulilittle2 小时前
FileStream C++
开发语言·c++·cocoa
Gomiko2 小时前
C/C++基础(五):分支
c语言·c++
wearegogog1232 小时前
光谱分析波段选择的连续投影算法
算法
点PY2 小时前
C++ 中 std::async 和 std::future 的并发性
java·开发语言·c++
执笔论英雄3 小时前
【RL】DAPO 数据处理
算法
不会代码的小猴3 小时前
C++的第九天笔记
开发语言·c++·笔记
why1513 小时前
面经整理——算法
java·数据结构·算法
专注于大数据技术栈3 小时前
java学习--枚举(Enum)
java·学习
悦悦子a啊4 小时前
将学生管理系统改造为C/S模式 - 开发过程报告
java·开发语言·算法
痕忆丶4 小时前
双线性插值缩放算法详解
算法