本文最后更新于:2020年6月28日 下午
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
实现如下:
//两种跳跃方式:跳1级或跳2级
//假设有n级台阶,跳1级还剩余n-1级,跳2级还剩余n-2级,那剩余台阶继续选择跳法
//f(n) = f(n-1) + f(n-2) -> 斐波那契数列
//n = 1时,1
//n = 2时,2
class Solution
{
public:
int jumpFloor(int n)
{
int a = 1, b = 2, tmp = 0;
if (n == 1) return 1;//特殊情况只有1级台阶
else if (n == 2) return 2;//特殊情况只有2级台阶
else
{
for (int i = 3; i <= n; ++i)
{
tmp = a + b;
a = b;
b = tmp;
}
return b;
}
}
};
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!