leetcode:96.不同的二叉搜索树

解题思路:

输入n=3

n = 0 1个

n = 1 1个

n = 2 2个

头1+头2+头3

头1 = 左子树0节点(个数)x右子树2个节点(个数)

头2 = 左子树1节点(个数)x右子树1个节点(个数)

头3 = 左子树2节点(个数)x右子树0个节点(个数)

dp含义:

dp[3] = dp[0] *dp[2] + dp[1] *dp[1] + dp[2] * dp[0]

递推公式:

dp[i] += dp[j-1] * dp[i-j]

j相当于是头节点的元素,j-1相当于以j为头节点左子树节点数量,i-j以j为头节点右子树节点数量

将i遍历到j,进行累加

初始化:

dp[0] = 1

dp[1] = 1(可以从递推公式推出来,可以不初始化0)

遍历顺序:

从左往右,根据递推公式可知

代码实现:(最后如果结果有问题,记得打印dp数组)

相关推荐
Ailan_Anjuxi2 分钟前
【附Python源码】使用minGPT训练自己的小型GPT语言模型
算法
QuZero10 分钟前
StampedLock Mechanism
java·算法
云泽80814 分钟前
二叉树高阶笔试算法题精讲(二):非递归遍历与序列构造全解析
c++·算法·面试
无限进步_1 小时前
C++ 多态机制完全解析:从虚函数重写到动态绑定原理
java·c语言·jvm·数据结构·c++·windows·后端
小O的算法实验室1 小时前
2026年ESWA,基于固定机巢的无人机输电杆塔、变电站与配电杆混合巡检任务分配与路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
sali-tec3 小时前
C# 基于OpenCv的视觉工作流-章60-点点距离
图像处理·人工智能·opencv·算法·计算机视觉
nlpming4 小时前
OpenCode Skills 文档
算法
无限进步_4 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
05候补工程师4 小时前
深度解构 ROS 2:如何手动调通 Nav2 A* 路径规划引擎
linux·人工智能·经验分享·算法·机器人
上弦月-编程4 小时前
【C语言逻辑题】谋杀案凶手是谁?——经典矛盾推理题详解
算法