跳台阶
一、题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
二、我的思路
1、如果只有1个台阶,则结果为1;
2、如果只有2个台阶,则结果为2,即分别跳两次1级或跳一次2级;
3、如果有大于或等于3个台阶,则分两种情况讨论:第一次跳1阶和第一次跳两阶,则剩下的台阶又可单独考虑。
4、综上所述,则看作一个递推式,即为斐波那契数列。
三、我的代码
class Solution {
public:
int jumpFloor(int number) {
if(number == 1 || number == 2)
return number;
int n1 = 1, n2 = 2;
for(int i = 3;i <= number;i++){
int s = n1 + n2;
n1 = n2;
n2 = s;
}
return n2;
}
};