当前位置:网站首页>Leetcode 96. Différents arbres de recherche binaires
Leetcode 96. Différents arbres de recherche binaires
2022-06-10 12:56:00 【Changersh】
96. Différents arbres de recherche binaires
Pour vous donner un entier n ,Je vous en prie. n Les noeuds sont composés et les valeurs des noeuds sont de 1 À n Différents Arbre de recherche binaire Combien de?Renvoie le nombre d'arbres de recherche binaires qui répondent à l'intention du sujet.
Exemple 1:
Entrée:n = 3
Produits:5
Exemple 2:
Entrée:n = 1
Produits:1
Conseils:
1 <= n <= 19
Idées
On peut mettren = 1 2 3 Ces trois situations sont énumérées,Et puis nous pouvons découvrir:
n = 1Heure,Il n'y a qu'un seul noeud,La valeur est:1,Il ne peut former qu'un arbre de recherche binaire.
n = 2Heure,1 2 C'est bon.1 Pour les noeuds,C'est possible.2Pour le noeud racine,Donc il y a deux situations.
n = 3Heure,C'est le cas de l'image ci - dessus,Cinq situations au total,Peut être divisé en trois grandes catégories:
- 1Pour le noeud racine:Le reste est plus que1Grand,Donc le Sous - arbre gauche a 1 - 1 = 0Noeuds,Le Sous - arbre droit a3 - 1 = 2Noeuds,Donc la situation est redevenue deux noeuds dans le Sous - arbre droit,Zéro noeud dans le Sous - arbre gauche.Donc le nombre de fois = Sous - arbre gauche0Nombre de types de noeuds * Sous - arbre droit2Nombre de types de noeuds
- 2Pour le noeud racine:Sous - arbre gauche 2 - 1 = 1Noeuds,Sous - arbre droit 3 - 2 = 1Noeuds,Donc le nombre de fois = Un noeud dans le Sous - arbre gauche * Un noeud dans le Sous - arbre droit
- 3Pour le noeud racine:Sous - arbre gauche 3 - 1 = 2Noeuds,Sous - arbre droit 3 - 3 = 0Noeuds,Donc le nombre de fois = Deux noeuds dans le Sous - arbre gauche * Un noeud dans le Sous - arbre droit
Et nous pouvons aussi savoir , Le nombre d'espèces correspondant au nombre de noeuds dans les sous - arbres de gauche et de droite est égal à dp[i]Valeur de.
Alors...dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2];
Pour la section i Noeuds, Il faut envisager 1 À i En tant que noeud racine,Il faut donc additionner
C'est tout. i Noeuds,Pour le noeud racine j ,En ce moment,Le Sous - arbre gauche a j - 1 Noeuds,Le Sous - arbre droit a i - j Noeuds
Code
class Solution {
public:
int numTrees(int n) {
int dp[n + 1];
for (int i = 0; i <= n; i++) dp[i] = 0;
dp[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
dp[i] += dp[i - j] * dp[j - 1];
}
}
return dp[n];
}
};
/* //Pour la sectioniNoeuds,Il faut y réfléchir.1Comme noeud racine jusqu'àiEn tant que noeud racine,Il faut donc additionner //TotaliNoeuds,Pour le noeud racinejHeure,Le nombre de noeuds dans le Sous - arbre gauche estj-1,Le nombre de noeuds dans le Sous - arbre droit esti-j */
/* Élément1Nombre d'arbres de recherche pour les noeuds d'en - tête = Le Sous - arbre droit a2Nombre d'arbres de recherche pour les éléments * Le Sous - arbre gauche a0Nombre d'arbres de recherche pour les éléments Élément2Nombre d'arbres de recherche pour les noeuds d'en - tête = Le Sous - arbre droit a1Nombre d'arbres de recherche pour les éléments * Le Sous - arbre gauche a1Nombre d'arbres de recherche pour les éléments Élément3Nombre d'arbres de recherche pour les noeuds d'en - tête = Le Sous - arbre droit a0Nombre d'arbres de recherche pour les éléments * Le Sous - arbre gauche a2Nombre d'arbres de recherche pour les éléments Oui.2 Le nombre d'arbres de recherche pour les éléments est dp[2]. Oui.1 Le nombre d'arbres de recherche pour les éléments est dp[1]. Oui.0 Le nombre d'arbres de recherche pour les éléments est dp[0]. Alors...dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2] */
边栏推荐
- OFFICE技术讲座:标点符号-英文-大全
- 编写程序,计算2/1+3/2+5/3+8/5.....的值。要求计算前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
- 手机厂商“返祖”,只有苹果说不
- Today, a couple won the largest e-commerce IPO in Hong Kong
- Unity3D开发MR实现模型遮挡与透明地面接收阴影
- VDO-SLAM源码阅读笔记[2] local optimization和global optimization
- 性能测试方案(计划)模板
- Tensorflow2.0 advanced learning - image (11)
- Tidb elementary course experience 8 (cluster management and maintenance, adding a tikv node)
- Introduction of Altium Designer
猜你喜欢

今天,一对情侣拿下香港最大电商IPO

Software project management 6.10 Cost budget

UML类图

Tidb Primary course experience 8 (Management Maintenance of Clusters, add a tikv Node)

向数据库中注册用户名和密码的功能

好文分享|48小时敏捷开发攻略

MAX3051的can芯片的学习

Alibaba cloud ECS server builds MySQL database

Use soapUI tool to generate SMS interface code

CC2642R 蓝牙MCU芯片的学习
随机推荐
Recommended learning materials for Altium Designer
Ad-pcb schematic diagram learning (1)
Tensorflow2.0 advanced learning - image (11)
SLM4054独立线性锂电池充电器的芯片的学习
DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文阅读
request获取请求服务器ip地址
If the files and graphics are lost, it means that you don't need the office developed by yourself
VDO-SLAM源码阅读笔记[1] Track()中动态obj部分
The Japanese version of arXiv is a cool batch: only 37 papers have been received after more than 2 months
Unity3d uses URP rendering pipeline to realize ar shadow (shadow casting and transparent ground)
How can the team be dissolved...
JS array de duplication: de duplication of two-dimensional arrays, removal of the same value, and removal of the same array
IQR箱线图
Six stone programming: talking about naming based on the position of word processing
已拿offer,进阶学习
Mr developed by unity3d realizes model occlusion and transparent ground receiving shadow
Commencez par interpréter le Code généré automatiquement par la BDC et expliquez les composantes du programme de l'interface graphique SAP.
Altium Designer重拾之开篇引入
Altium Allegro PADS到底该选哪个EDA设计软件
Tidb elementary course experience 8 (cluster management and maintenance, adding a tikv node)