当前位置:网站首页>【力扣】96. 不同的二叉搜索树
【力扣】96. 不同的二叉搜索树
2022-08-09 14:58:00 【漆黑丶】
题目:
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

示例 1:
输入:n = 3
输出:5
示例 2:
输入:n = 1
输出:1
提示:
1 <= n <= 19
答案:
class Solution {
public int numTrees(int n) {
/** 动态规划 假设n个节点存在二叉排序树的个数是G(n),令f(i)为以i为根的二叉搜索树的个数 即有:G(n) = f(1) + f(2) + f(3) + f(4) + ... + f(n) n为根节点,当i为根节点时,其左子树节点个数为[1,2,3,...,i-1],右子树节点个数为[i+1,i+2,...n],所以当i为根节点时,其左子树节点个数为i-1个,右子树节点为n-i,即f(i) = G(i-1)*G(n-i), 上面两式可得:G(n) = G(0)*G(n-1)+G(1)*(n-2)+...+G(n-1)*G(0) */
int[] dp = new int[n + 1];
dp[0] = 1;
dp[1] = 1;
for(int i = 2; i < n + 1; i++){
for(int j = 1; j < i + 1; j++){
dp[i] += dp[j-1] * dp[i-j];
}
}
return dp[n];
}
}
边栏推荐
猜你喜欢
随机推荐
pyspark jieba 集群模型 对文本进行切词
Visio画神经网络卷积层
XGB系列-XGB参数指南
hugging face tutorial - Chinese translation - fine-tuning a pre-trained model
抱抱脸(hugging face)教程-中文翻译-模型概要
[Deep Learning] Original Problem and Dual Problem (6)
【Postgraduate Work Weekly】(Week 8)
Stetman的读paper小记:Deep Learning Backdoor Survey (Shaofeng Li, Shiqing Ma, Minhui Xue)
【 Leetcode 】 433. The smallest genetic changes
function calling convention
【Postgraduate Work Weekly】(Week 12)
VGG pytorch实现
MNIST数据集的训练(内附完整代码及其注释)
研究生工作周报(第十三周)
Why learn the principles of compiling
opencv图像处理及视频处理基本操作
pyspark dataframe分位数计算
抱抱脸(hugging face)教程-中文翻译-共享定制模型
【 graduate work weekly 】 (10 weeks)
【研究生工作周报】(第十周)







![[Deep Learning] SVM solves the linear inseparable situation (8)](/img/3c/199f3ff3fb0546bcd7f70bd71030a0.png)
