题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解法一:(递归, 626ms)
class Solution {
public:
int jumpFloor(int number) {
if(number <= 0) {
return -1;
}else if(number == 1) {
return 1;
}else if(number == 2) {
return 2;
}else {
return jumpFloor(number - 1) + jumpFloor(number- 2);
}
}
};
解法二:(循环, 3ms)
class Solution {
public:
int jumpFloor(int number) {
if(number <= 0) {
return -1;
}else if(number == 1) {
return 1;
}else if(number == 2) {
return 2;
}
int sumStep = 0, sumBackStep2 = 1, sumBackStep1 = 2;
for(int i = 3; i <= number; i++) {
sumStep = sumBackStep2 + sumBackStep1;
sumBackStep2 = sumBackStep1;
sumBackStep1 = sumStep;
}
return sumStep;
}
};