版主
- 积分
- 58226
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2017-10-15
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
虽然卡特兰数的程序的写出比较容易记忆,卡特兰数和括号匹配我一直想不清楚之间的关系。
都知道卡特兰数是C3 = C2xC0+C1xC1 + C0xC2但是对于
已知
C1是()
C2是()()和(())
对于C3来说,
()()()
((()))
(())()
()(())
(()())
哪一个才是C2xC0,哪个才是C1xC1, C0xC2一直很混淆。尤其是上面的五种并不是左右对称。
今天终于有时间思考了一下。分享心得。抛砖引玉。看有什么更好的符合直觉的思路。
- 空 空 空 空 空
- ( ) ( ) ( ) ( ) ( )
- ( ) ( ) ( )( ) ( ) ( )
- ( ) ( ) ( ) ( )
- ————————————————————————————————————————————————————————————
- 规则是如果左括号表示嵌套关系,右括号表示跟随的关系。
- ((())) (()()) (())() ()(()) ()()()
复制代码
举例为什么左二是(()())。第一个(是第一层的左孩子。因为是左孩子,所以要嵌套(不出栈)。这样有了(()。因为第二层是右孩子所以要跟随。变成(()(),加上第一层的无孩子的右孩子,变成结果(()())。 |
上一篇: LeetCode 各公司 6个月内 最常见20题下一篇: Leetcode刷题求指教
|