网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

LeetCode如何解决不同的二叉搜索树问题

这篇文章主要为大家展示了“LeetCode如何解决不同的二叉搜索树问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LeetCode如何解决不同的二叉搜索树问题”这篇文章吧。

创新互联公司专业为企业提供大安网站建设、大安做网站、大安网站设计、大安网站制作等企业网站建设、网页设计与制作、大安企业网站模板建站服务,10多年大安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。


 

题目描述

给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?

示例:

输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:
  1         3     3      2      1    \       /     /      / \      \     3     2     1      1   3      2    /     /       \                 \   2     1         2                 3
   

解题方案

 

思路

  • 标签:动态规划

  • 假设n个节点存在二叉排序树的个数是G(n),令f(i)为以i为根的二叉搜索树的个数,则

LeetCode如何解决不同的二叉搜索树问题

  • 当i为根节点时,其左子树节点个数为i-1个,右子树节点为n-i,则

LeetCode如何解决不同的二叉搜索树问题

  • 综合两个公式可以得到卡特兰数[1]公式

LeetCode如何解决不同的二叉搜索树问题

LeetCode如何解决不同的二叉搜索树问题  
算法动图
 

代码

class Solution {    public int numTrees(int n) {        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];    }}

以上是“LeetCode如何解决不同的二叉搜索树问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享文章:LeetCode如何解决不同的二叉搜索树问题
文章路径:http://bjjierui.cn/article/pgepep.html

其他资讯