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

题目描述

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

示例 1:

复制代码
输入:n = 3
输出:5

示例 2:

复制代码
输入:n = 1
输出:1

思路 【参考: 代码随想录

动态规划,5个步骤

  1. dp数组含义: i个不同元素节点组成的二叉搜索树的个数为dp[i]

  2. 公式: dp[i] += dp[j-1]*dp[i-j]

  3. 初始化: dp[0] = 1

  4. 遍历顺序: 从前往后

  5. 打印数组: 暂无

python 复制代码
class Solution(object):
    def numTrees(self, n):
        """
        :type n: int
        :rtype: int
        """
        dp = [0]*(n+1)
        dp[0] = 1
        for i in range(1,n+1):
            for j in range(1,i+1):
                dp[i] += dp[j-1]*dp[i-j]
        return dp[-1]

if __name__ == '__main__':
    s = Solution()
    print(s.numTrees(3))
相关推荐
学习使我变快乐1 小时前
C++:无序容器
数据结构·c++·算法
朱剑君1 小时前
贪心算法——分数背包问题
算法·贪心算法
小O的算法实验室1 小时前
2008年EJOR SCI2区,连续蚁群优化算法ACOR,深度解析+性能实测
算法·智能算法
2301_794461571 小时前
力扣-将x减到0的最小操作数
数据结构·算法·leetcode
bing_feilong1 小时前
树莓派4B搭建Hector SLAM算法, ROS1 & ROS2?
算法·机器人
晨曦夜月2 小时前
《牛客》数组中出现次数超过一半的数字
算法
白白糖2 小时前
相同,对称,平衡,右视图(二叉树)
python·算法·二叉树·力扣
星沁城2 小时前
108. 将有序数组转换为二叉搜索树
java·数据结构·leetcode
摩尔线程2 小时前
推测解码算法在 MTT GPU 的应用实践
算法·语言模型·大模型·gpu算力·gpu·摩尔线程
江畔柳前堤2 小时前
PyQt学习系列07-数据库操作与ORM集成
数据库·学习·算法·机器学习·架构·pyqt