Climbing Stairs
来源:互联网 发布:steam数据库 编辑:程序博客网 时间:2024/06/06 00:14
Climbing Stairs
我的思路:
1 这题可以用递归也可以用公式,明显用公式是最快的。假设n个台阶的结果是F(n),当你完成的时候,完成之前跳的情况只有两种,要不是跳了两步,那时是在倒数第二个台阶(也可以认为是倒数第三个台阶)F(n - 2),还有一个可能是跳了一个台阶是F(n - 1)。只有这两种可能,所以,结果是F(n) = F(n - 1) + F(n - 2)。
代码如下:
int climbStairs(int n) { if (n < 0) return 0; else if (n == 1) return 1; else if (n == 2) return 2; int answer, before = 2, morebefore = 1; for (int i = 3; i <= n; ++i) { answer = before + morebefore; morebefore = before; before = answer; } return answer; }
0 0
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- 解决source insight不能查看utf8代码的问题 2012
- 这个男人是我的
- 解决ubuntu解压windows生成的zip文件时乱码问题
- 作业
- 导出Excel并自动弹出浏览器下载
- Climbing Stairs
- 振奋人心丫。。哇卡卡
- nvarvhar(max)长度的限制
- R:访问列表元素和值
- 减肥攻略
- 带你装B,带你飞的大数据时代
- IOS block
- 这要求太过分了
- 《mysql必知必会》笔记(一)