牛客网算法学习笔记-卡特兰数相关
来源:互联网 发布:deepin ubuntu 哪个好 编辑:程序博客网 时间:2024/05/01 16:05
说实话,卡特兰数我自己基本没什么深刻的理解,只能做一些相关的简单的题目而已。所以这里只记录题目和代码。
n个数进出栈的顺序有多少种?假设栈的容量无限大。
给定一个整数n,请返回所求的进出栈顺序个数。保证结果在int范围内。
测试样例:
1
返回:1
2n个人排队买票,n个人拿5块钱,n个人拿10块钱,票价是5块钱1张,每个人买一张票,售票员手里没有零钱,问有多少种排队方法让售票员可以顺利卖票。
给定一个整数n,请返回所求的排队方案个数。保证结果在int范围内。
测试样例:
1
返回:1
求n个无差别的节点构成的二叉树有多少种不同的结构?
给定一个整数n,请返回不同结构的二叉树的个数。保证结果在int范围内。
测试样例:
1
返回:1
public:
int countWays(int n) {
// write code here
int result = 1;
for(int i = n+1;i<=2*n;i++){
result = result *i;
}
for(int i = 1;i<=n;i++){
result = result/i;
}
result = result /(n+1);
return result;
}
};
12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
给定一个偶数n,请返回所求的排列方式个数。保证结果在int范围内。
测试样例:
1
返回:1不会写。没看出是卡特兰数
别人家的代码:
class HighAndShort {public: int countWays(int n) { // write code here if(n%2) n--; int res=1; for(int i=n;i>n/2;i--) res*=i; for(int i=n/2;i>1;i-- ) res/=i; return res/(n/2+1); }};
有n个信封,包含n封信,现在把信拿出来,再装回去,要求每封信不能装回它原来的信封,问有多少种装法?
给定一个整数n,请返回装发个数,为了防止溢出,请返回结果Mod 1000000007的值。保证n的大小小于等于300。
测试样例:
2
返回:1class CombineByMistake {
public:
int countWays(int n) {
// write code here
long a = 0;
long b = 1;
if(n==1)
return a;
if(n==2)
return b;
int result;
for(int i = 3;i<=n;i++){
result = (i - 1)*(a + b) %1000000007;
a = b;
b = result;
}
return result;
}
};
0 0
- 牛客网算法学习笔记-卡特兰数相关
- 卡特兰数 学习笔记
- 卡特兰数——学习笔记
- 卡特兰数学习
- 卡特兰数相关问题
- 卡特兰数相关问题
- 卡特兰数相关问题
- 卡特兰数相关知识
- 卡特兰数 算法摘记
- 算法-数论-卡特兰数
- 算法之卡特兰数
- 卡特兰数与算法
- 算法 卡特兰Catalan数
- 卡特兰数复习笔记
- 卡特兰数学习小记
- 卡特兰数学习小记
- 笔试算法学习--买票找零问题(卡特兰数)
- 卡特兰数(Catalan)相关问题
- 开源负载均衡通讯分发器(LB dispatcher) - G5
- Insertion Sort List(medium)
- 委托类的练习
- 服务器证书配置
- final link failed: Nonrepresentable section on output的解决办法
- 牛客网算法学习笔记-卡特兰数相关
- ViewPager+Fragment滑动或者点击导航颜色变化
- 插补运动
- TOP命令各个参数代表意义详解
- scala类型限定
- 如何使用Desktop或者基础的git指令上传代码到github
- Jsoup 去除html标签
- SpringMVC之Validation实现(JSR303规范)
- Android 多线程断点下载及自动更新