Catalan 数

 问题描述:卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。输入一个整数n,计算h(n)。其递归式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2,h(0) = h(1) = 1)    该递推关系的解为:h(n)=C(2n,n)/(n+1) (n=1,2,3,...)

对于有n个节点的二叉树的计数,我们去掉根节点,假设对左子树的形态有b[i]种,对右子树的形态有b[n-1-i]种,容易得出,对有n个节点的二叉树,容易有 b[n] = sum[k = 0 .. n - 1](b[k]*b[n - 1 - k]);该数列正是catalan数的一种定义。
结论 b[n] = (1/(n + 1))*C(2n,n) ;

http://www.cnblogs.com/dztgc/archive/2013/04/26/3043656.html

leetcode 中有一道 generate parentheses 题目,可以参照这方法:

http://www.cnblogs.com/TenosDoIt/p/3776583.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值