题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解
题
思
路
:
\color{blue}解题思路:
解题思路:
这道题其实也是一道斐波拉契尔数列应用的题,只是换了个马甲。
到达第n阶台阶有两种可能,一种是从第n - 2阶台阶一步跨两阶到达n,另一种是从第n - 1阶台阶跨一阶到达n,因此得出递推公式f(n) = f(n - 2) + f(n - 1)
。
遇上一题的代码是一毛一样的 剑指offer 斐波那契数列
代 码 实 现 : \color{blue}代码实现: 代码实现:
class Solution {
public:
int jumpFloor(int number) {
//now初始化n = 1时的跳法数,next初始化为n = 2时的跳法数
int now = 1, next = 2;
//递推number - 1次
while (--number > 0) {
//有now(第n - 2阶)、next(第n - 1阶)计算 next->next(第n阶)
next += now;
//更新now(第n - 2阶)为之前的next(第n - 1阶)
now = next - now;
}
return now;
}
};
题
目
推
荐
:
\color{blue}题目推荐:
题目推荐:
题1、LeetCode 接雨水
题2、LeetCode 缺失的第一个正数
题3、Leetcode 组合总数II(回溯法+剪枝)