题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题解
这道题依然和斐波那契数列大同小异,写一个循环,每次跳不同的阶数就可以了。记得用记忆化搜索
class Solution {
public:
map<int, int> M;
int jumpFloorII(int number) {
if(number <= 0) return 0;
if(number <= 2) return number;
if(M[number] != 0) return M[number];
int ans = 1;
for(int i = number - 1; i > 0; i--){
ans += jumpFloorII(i);
}
M[number] = ans;
return ans;
}
};