当前位置:网站首页>【力扣】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];
}
}
边栏推荐
- Why learn the principles of compiling
- 【深度学习】SVM解决线性不可分情况(八)
- Vitis部分实验记录
- Postgraduate Work Weekly (Week 13)
- hugging face tutorial - Chinese translation - tokenizers using Tokenizers
- 研究生工作周报(第六周)
- 抱抱脸(hugging face)教程-中文翻译-使用 AutoClass 加载预训练的实例
- 【深度学习】前向传播和反向传播(四)
- 抱抱脸(hugging face)教程-中文翻译-使用 Tokenizers 的 tokenizers
- 【工具使用】Keil软件包——知识宝藏库
猜你喜欢
随机推荐
【Postgraduate Work Weekly】(Week 12)
【 Leetcode 】 433. The smallest genetic changes
tensor转cv::Mat(即CHW转HWC)原理含C#代码实现
【深度学习】介绍六大类损失函数(九)
抱抱脸(hugging face)教程-中文翻译-分享一个模型
hugging face tutorial - Chinese translation - Loading pre-trained instances with AutoClass
研究生工作周报
YOLOV2详解
QNX 7.1 交叉编译 boost 1.76
[Deep Learning] SVM solves the linear inseparable situation (8)
Candide3人脸动画模型
流体拓扑优化问题
LeNet5 pytorch实现
【研究生工作周报】(第十二周)
大唐杯5G练习题(二)
【Postgraduate Work Weekly】
【力扣】662. 二叉树最大宽度
【研究生工作周报】(第五周)
【深度学习】全面理解支持向量机SVM(七)
Retrofit2 初印象?









