一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:还是斐波那契数列。因为这个青蛙一次可以跳1或者2个台阶,所以当前台阶可以是从前一个跳上来,也可以是从前二一个一次跳两阶台阶上来的。这就是斐波那契了
class Solution {
public:
int jumpFloor(int number) {
if (number <= 2) return number;
int last2 = 1, last1 = 2;
int res = 0;
for(int i = 3; i <= number; ++i) {
res = last2 + last1;
last2 = last1;
last1 = res;
}
return res;
}
};