代码随想训练营第四十一天(Python)| 不同的二叉树搜索树

96.不同的二叉搜索树
1、关键点找出状态转移方程

class Solution:
    def numTrees(self, n: int) -> int:
        # 创建 dp 数组, dp[i] 代表节点数为 i 的二叉搜索树数量
        dp = [0]*(n+1)

        # 初始化数组
        dp[0] = 1

        # 遍历每个元素作为根节点
        for i in range(n+1):
            for j in range(1, i+1):
                # 状态转移方程。左子树数量*右子数数量
                dp[i] += dp[j-1]*dp[i-j]
        return dp[n]
posted @   忆象峰飞  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示