当前位置: 首页 > news >正文

佛山网站建设 天博免费企业建站

佛山网站建设 天博,免费企业建站,学历提升的正规机构,信和财富网站开发96. 不同的二叉搜索树 - 力扣(LeetCode) 一、题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出&a…

96. 不同的二叉搜索树 - 力扣(LeetCode)

一、题目

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

示例 1:

输入:n = 3
输出:5

示例 2:

输入:n = 1
输出:1

提示:

  • 1 <= n <= 19

二、代码

class Solution {public int numTrees(int n) {return compute(n);}public int compute(int N) {// 过滤特殊值if (N < 0) {return 0;}if (N < 2) {return 1;}long a = 1;long b = 1;long c = 0;// 2nlong limit = N << 1;// 1、计算c(2N, N) = b / afor (long j = 1, i = N + 1; j <= N && i <= limit; j++, i++) {// 计算a:从1累乘到na *= j;// 计算b:从n+1一直累乘到2n  b *= i;// 求a和b的最大公因数,用来对a和b进行分数化简,避免在计算过程中溢出。// 如果这里不进行化简的话,当N比较大的时候就会出现数据溢出情况c = gcd(a, b);a /= c;b /= c; }// 2、计算公式3的计算结果// 公式3:k(n)= c(2n, n) / (n + 1)// c(n, m) = n(n-1)...(n-m+1) / m!// b:2n * (2n - 1) * ... * (2n - n + 1)   也就是从n+1一直累乘到2n// a:1 * 2 * ... * (n - 1) * n   也就是从1一直累乘到n// c(2N, N) = b / areturn (int) ((b / a) / (N + 1));}// 辗转相除法求最大公因数public long gcd(long a, long b) {long c = a % b;if (c != 0) {return gcd(b, c);} else {return b;}}
}

三、解题思路 

卡特兰数满足如下关系式:

k(0)= 1, k(1)= 1时,如果接下来的项满足:

k(n)= k(0)*k(n-1) + k(1)*k(n- 2) + ... + k(n- 2)*k(1) + k(n- 1)* k(0)

或者

k(n)= C(2n, n) - C(2n, n-1)

或者

k(n)= C(2n, n) / (n + 1)

就说这个表达式,满足卡特兰数。

总的来说,需要剖析出这道题的本质:

假设n个节点存在二叉排序树的个数是G(n),1为根节点,2为根节点,...,n为根节点,当1为根节点时,其左子树节点个数为0,右子树节点个数为n-1,同理当2为根节点时,其左子树节点个数为1,右子树节点为n-2,所以可得G(n) = G(0)*G(n-1)+G(1)*(n-2)+...+G(n-1)*G(0)。

明白了这道题的本质,发现了这个计算式子,就马上意识到这是一个卡特兰数的题目,直接用卡特兰数的计算公式计算结果即可。

http://www.yidumall.com/news/4155.html

相关文章:

  • 长沙做网站优化seo百度关键字优化
  • 南阳建设局网站成都百度推广代理公司
  • 怎么看网站banner尺寸提高工作效率8个方法
  • 社交网站开发语言北京seo优化哪家好
  • 动物园网站建设的可行性分析企业网站seo案例分析
  • 深圳专业网站设计怎么做整站快速排名优化
  • 国外家具设计网站三叶草gw9356
  • 做网站对电脑要求高吗seo快速排名培训
  • 东莞网站建设网站排名优化百度产品有哪些
  • 网站 备案 中国 名字新东方小吃培训价格表
  • 麦客网做网站营销推广怎么做
  • 烟台网站建设.com网站建设开发公司
  • 深圳营销型网站策划百度推广效果
  • 网站人工客服系统搜索引擎优化seo论文
  • 上海公司做网站怎么做互联网营销推广
  • 站群宝塔批量建站促销方法100种
  • 网站建设质量保证免费合作推广
  • 怎样做网站平台惠州百度seo在哪
  • 个人怎么做网站页面免费b2b网站推广
  • 牛牛襄阳做网站免费b站推广网站在线
  • ...东莞网站公司网站推广的途径有哪些
  • 网站做等保是什么意思湖南网站建设推广优化
  • 四川成都营销型网站新品牌推广方案
  • 商城网站建设费用太原seo网站排名
  • 前端做网站的兼职网站提交链接入口
  • 做花茶网站解说希爱力双效片用后感受
  • 做全国家电维修网站到哪里做视频剪辑培训
  • 宁波企业免费建站厦门人才网官网招聘
  • 桂林网站制作报价企业的互联网推广
  • 做二手车网站怎么做的营销案例100例简短