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

怎么做服装外贸网站买了500元黑科技引流靠谱吗

怎么做服装外贸网站,买了500元黑科技引流靠谱吗,哈尔滨产品推广网站,网站建设哪个公司目录 题目描述 解题思路 代码实现 进出栈序列理解卡特兰数分析策略 相关知识 参考文章 题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: …

目录

题目描述

解题思路

代码实现

进出栈序列理解卡特兰数分析策略

相关知识

参考文章


题目描述

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

示例 1:

输入:n = 3
输出:5

示例 2:

输入:n = 1
输出:1

解题思路

题目要求是计算不同二叉搜索树的个数。为此,我们可以定义两个函数:

G(n): 长度为 n 的序列能构成的不同二叉搜索树的个数。

F(i,n) 以 i为根、序列长度为 n 的不同二叉搜索树个数 (1≤i≤n)。

可见,G(n) 是我们求解需要的函数。

稍后我们将看到,G(n)可以从 F(i,n)得到,而 F(i,n)又会递归地依赖于 G(n)。

首先,根据上一节中的思路,不同的二叉搜索树的总数 G(n),是对遍历所有 i (1≤i≤n)的 F(i,n) 之和。换言之:

公式一

  G\left ( n \right ) \sum_{i=1}^{n}F(i,n) 

对于边界情况,当序列长度为 1(只有根)或为 0(空树)时,只有一种情况,即:
G(0)=1,G(1)=1
给定序列 1⋯n,我们选择数字 i 作为根,则根为 i的所有二叉搜索树的集合是左子树集合和右子树集合的笛卡尔积,对于笛卡尔积中的每个元素,加上根节点之后形成完整的二叉搜索树,如下图所示:

二叉搜索树左节点<根结点<右节点

 因此,我们可以得到以下公式:

公式二

F(i,n)=G(i−1)⋅G(n−i)

 将公式一二 结合,可以得到 G(n的递归表达式:

   G\left ( n \right ) \sum_{i=1}^{n}G(i-1,n) G(n-i,n)
 

事实上我们在方法一中推导出的 G(n)函数的值在数学上被称为卡塔兰数  

 卡塔兰数更便于计算的定义如下:

代码实现

class Solution {public int numTrees(int n) {int[] G = new int[n + 1];G[0] = 1;G[1] = 1;for (int i = 2; i <= n; ++i) {for (int j = 1; j <= i; ++j) {G[i] += G[j - 1] * G[i - j];}}return G[n];}
}

进出栈序列理解卡特兰数分析策略

这是一道最经典的入门级卡特兰数题目,如果能把这题看懂,相信后面的题目也能迎刃而解。

题目

n 个元素进栈序列为:1,2,3,4,...,n,则有多少种出栈序列?

思路

我们将进栈表示为 +1,出栈表示为 -1,则 1 3 2 的出栈序列可以表示为:+1 -1 +1 +1 -1 -1。

根据栈本身的特点,每次出栈的时候,必定之前有元素入栈,即对于每个 -1 前面都有一个 +1 相对应。因此,出栈序列的所有前缀和必然大于等于 0,并且 +1 的数量等于 -1 的数量。

接下来让我们观察一下 n = 3 的一种出栈序列:+1 -1 -1 +1 -1 +1。序列前三项和小于 0,显然这是个非法的序列。

如果将第一个前缀和小于 0 的前缀,即前三项元素都进行取反,就会得到:-1 +1 +1 +1 -1 +1。此时有 3 + 1 个 +1 以及 3 - 1 个 -1。

因为这个小于 0 的前缀和必然是 -1,且 -1 比 +1 多一个,取反后,-1 比 +1 少一个,则 +1 变为 n + 1 个,且 -1 变为 n - 1 个。进一步推广,对于 n 元素的每种非法出栈序列,都会对应一个含有 n + 1 个 +1 以及 n - 1 个 -1 的序列。

如何证明这两种序列是一一对应的?

假设非法序列为 A,对应的序列为 B。每个 A 只有一个"第一个前缀和小于 0 的前缀",所以每个 A 只能产生一个 B。而每个 B 想要还原到 A,就需要找到"第一个前缀和大于 0 的前缀",显然 B 也只能产生一个 A。

把A小于0的前缀后部分取反,其余部分不变

每个 B 都有 n + 1 个 +1 以及 n - 1 个 -1,因此 B 的数量为 \textrm{C}_{2n}^{n+1}相当于在长度为 2n 的序列中找到 n + 1 个位置存放 +1。相应的,非法序列的数量也就等于\textrm{C}_{2n}^{n+1}​。
 出栈序列的总数量共有\textrm{C}_{2n}^{n},因此,合法的出栈序列的数量为\textrm{C}_{2n}^{n} - \textrm{C}_{2n}^{n+1} = \frac{\textrm{C}_{2n}^{n} }{n+1}

此时我们就得到了卡特兰数的通项 \frac{\textrm{C}_{2n}^{n} }{n+1}

相关知识

img

顺便提一下,这里f(0)=1,

但是看表达式的话x=0是没定义的,

所以这里是极限意义上的,

然后补充该点定义即可,

再详细的细节就不深究了...

可以验证极限是否是1:

令1-4x=t   那么\lim_{t \to 1} \frac{1-\sqrt{t}}{\frac{1-t}{2}} = \lim_{t \to 1} \frac{1}{\frac{1+\sqrt{t}}{2}} =1 

当  x\geq \frac{1}{2}  时 的泰勒展开公式:

这个通项看起来太不和谐了,

还是再整理一下吧:

参考文章

由递推式求catalan数列通项公式

「算法入门笔记」卡特兰数

不同的二叉搜索树

http://www.hkea.cn/news/694362/

相关文章:

  • 龙城建设网站公司网站内容优化方法
  • 南通网站建设搭建网站卖链接
  • 驻马店市做网站seo臻系统
  • 找公司做网站怎么图片都要自己找百度推广官网电话
  • 网站小样用什么做seo外链平台热狗
  • 建站点的步骤sem是什么
  • 深圳专业做网站的衡水网站优化推广
  • 徐汇科技网站建设2345中国最好的网址站
  • 邢台论坛吧百度seo收录软件
  • 做国外服务器网站吗怎么让百度搜索靠前
  • 做动态图网站有哪些自建站怎么推广
  • web网站开发课程设计报告seo技术培训沈阳
  • 会宁网站建设公司网站优化助手
  • 网站设计制作体会2023年5月最新疫情
  • 月亮湾设计有限公司网站南宁seo产品优化服务
  • 福田欧曼服务站电话上海高端seo公司
  • 高端网站建设哪家好谷歌seo和百度seo
  • 前端写一个页面多少钱海口网站关键词优化
  • 浦东新区建设局官方网站东莞seo关键词
  • 在百度做橱柜网站进入百度一下官网
  • wordpress调用分类标签站长工具查询seo
  • 网站做全局搜索云南新闻最新消息今天
  • 公司网站推广方案长春seo代理
  • 网站地图怎么样做更利于收录手机百度搜索引擎入口
  • 中国建筑公司网站谷歌浏览器官方app下载
  • 厦门网站建设策划seo网站优化培训找哪些
  • 宝安区住房和建设局官方网站seo搜索引擎优化书籍
  • 省建设厅执业资格注册中心网站2023搜索最多的关键词
  • 本地wordpress上传搜索引擎营销优化策略有哪些
  • html手机网站模板培训心得体会800字