【问题描述】:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
【思路】:就是类似斐波那契数列。
递归思想内存占用过大。
class Solution {
public:
int jumpFloor(int n) {
if(n=0) return 0;
return jumpFloor(n-1)+jumpFloor(n-2);
}
};
改用循环就ok
class Solution {
public:
int jumpFloor(int n) {
if (n == 1)
return 1;
int f1 = 1, f2 = 1, curr;
for (int i = 2; i <= n; i++)
curr = f1 + f2, f1 = f2, f2 = curr;
return curr;
}
};