Leetcode 96. 不同的二叉搜索树

java 复制代码
class Solution {
    //根为i的二叉搜索树的数量=左子树二叉搜索树的数量乘以右子树二叉搜索树的数量
    //dp[i]表示i个节点时二叉搜索树的数量
    public int numTrees(int n) {
        int[] dp = new int[n + 1];
        dp[0] = 1;
        dp[1] = 1;
        for(int i = 2; i <= n; i++){
            for(int j = 1; j <= i; j++){
                dp[i] += dp[j - 1] * dp[i - j];
            }
        }
        return dp[n];
    }
}
相关推荐
燃于AC之乐1 分钟前
我的算法修炼之路--9——重要算法思想:贪心、二分、正难则反、多重与完全背包精练
c++·算法·贪心算法·动态规划·二分答案·完全背包·多重背包
Swift社区3 分钟前
LeetCode 383 赎金信
算法·leetcode·职场和发展
晚风吹长发6 分钟前
初步理解Linux中的信号概念以及信号产生
linux·运维·服务器·算法·缓冲区·inode
后来后来啊6 分钟前
20261.23 &1.24学习笔记
笔记·学习·算法
鱼跃鹰飞12 分钟前
LeetCode热题100:5.最长回文子串
数据结构·算法·leetcode
tobias.b13 分钟前
408真题解析-2010-10-数据结构-快速排序
java·数据结构·算法·计算机考研·408真题解析
季明洵13 分钟前
力扣反转链表、两两交换链表中的节点、删除链表的倒数第N个节点
java·算法·leetcode·链表
历程里程碑14 分钟前
Linux 4 指令结尾&&通过shell明白指令实现的原理
linux·c语言·数据结构·笔记·算法·排序算法
亲爱的非洲野猪20 分钟前
动态规划进阶:树形DP深度解析
算法·动态规划·代理模式