96.不同的二叉搜索树

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

java 复制代码
class Solution {
    public int numTrees(int n) {
        int[] dp = new int[n+1]; // dp[i] 表示节点数为 i 的不同二叉搜索树的数量。

        dp[0] = 1;
        dp[1] = 1;
        
        for(int i = 2; i <=n; i++)
            for(int j = 1; j <=i; j++)  // j表示根是第 j小的节点。
                // 左子树节点数 = j-1(如果根是第 j小的节点,则比它小的有 j-1个)
                // 右子树节点数 = i-j(比它大的有 i-j个)
                dp[i] += dp[j-1] * dp[i-j];  // 累加不同根的值
        
        return dp[n];
    }
}
相关推荐
Love_云宝儿31 分钟前
WKT数据示例并与GeoJSON数据对比
数据结构·gis
BlockWay42 分钟前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅1 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode
Smoothcloud润云1 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text
计算机安禾1 小时前
【算法分析与设计】第41篇:确定性与非确定性多项式时间:P与NP的形式化
算法
牢姐与蒯1 小时前
c++数据结构之c++11(一)
数据结构·c++
iiiiyu2 小时前
IO流(二)
java·开发语言·数据结构·编程语言
leo__5202 小时前
随机接入退避算法过程模拟实现
网络·算法
-To be number.wan2 小时前
算法日记 | STL- sort排序
c++·算法
啦啦啦啦啦zzzz2 小时前
数据结构:平衡二叉树
数据结构·c++·二叉树