变态跳台阶
来源:互联网 发布:c 并发编程实战 下载 编辑:程序博客网 时间:2024/04/28 22:57
时间限制:1秒空间限制:32768K
通过比例:35.42%
最佳记录:0 ms|8552K (来自 烧包谷)
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
一般解法:
f(n) = f(n-1) + f(n-2) + ··· + f(1) + 1;
令dec = f(n-1); sum = f(n-2) + ··· + f(1) + 1;
通过
1.sum += dec;
2.dec = sum;
3.f(n+1) = dec + sum;
迭代求解:
class Solution {public: int jumpFloorII(int number) { int sum = 0, dec; if( number == 1) { return 1; } else if(number == 2) { return 2; } else if(number == 3) { return 4; } for(int i = 3; i <= number; i++) { if(i == 3) { sum = 2; dec = 2; } else { sum += dec; dec = sum; } } return sum + dec; }};
最优解:
可以看到其实dec == sum
,故此:利用指数函数 pow(x, y)
= x ^ y
解法如下:
class Solution {public: int jumpFloorII(int number) { return pow(2, number -1); }};
0 0
- 跳台阶 && 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 牛客网 | 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶
- 变态跳台阶问题
- 青蛙变态跳台阶
- 变态版跳台阶
- 变态跳台阶
- 变态跳台阶
- vi 替换技巧
- Quartz 2D 小结
- First Bad Version 第一个坏数 二分查找
- linux的ln重要命令详解
- [NOIP 2013]华容道
- 变态跳台阶
- 市场营销方式详尽客户调查报告:Inbound vs. Outbound
- Struts2之文件上传与下载
- PHP 有用的函数
- 24-linux中的RPM
- 华为机试等式变换
- Thinkpadt450 win7下面禁用触摸板
- mongodb 内嵌文档多条件查询($elemMatch)
- Ubuntu 14.04下翻译软件的安装与比较