最近我做了很多卡特兰数相关的算法题,阅读了一些网络上的文章。有的文章过于冗长,太纠结于公式的推导;有的文章又太简单,只是罗列了相关的题目却并无解题分析;而且这些文章或多或少都有一些错误。所以本文目的是简明的分析卡特兰数题目的思路和解法,并且整理的网友的注解。
以下是两篇本文主要引用的文章的链接:
https://blog.csdn.net/Hackbuteer1/article/details/7450250
http://www.cnblogs.com/wuyuegb2312/p/3016878.html
1. 卡特兰数
卡特兰数的具体定义,可以参考wiki https://zh.wikipedia.org/zh-hans/卡塔兰数。本文只强调它的一个最重要的递推公式。
假设C(n)为自然数n对应的卡特兰数。若C(0)=1,C(1)=1,则有递推式:
C(n)= C(0)*C(n-1) + C(1)*C(n-2) + ... + C(n-1)C(0) (n>=2)
例如:C(3) = C(0)*C(2) + C(1)*C(1) + C(2)*C(0) = 5