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

代码解析

相关推荐
Xuanzang Road12 小时前
第 40 届学习强企玄奘路戈壁挑战赛:在绝境中重塑自我
学习
tju新生代魔迷13 小时前
Python学习日记3
学习
小小龙学IT14 小时前
FlatBuffers 深度解析:Google 开源零拷贝序列化库完全指南
c++·开源
叩码以求索14 小时前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
wuminyu14 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..14 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
hsjiasb14 小时前
FreeRTOS学习(三十九)——最终总结
学习·学习笔记·freertos
北风toto15 小时前
中缀、前缀、后缀表达式
算法·软件设计师
听取WA声一片(无恶意)15 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码匠许师傅15 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试