刷题笔记(七)——变态跳台阶 走台阶升级版
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:分析题可知,f(n)=f(n-1)+f(n-2)+...+f(1)+1,(f(0)可以加可以不加,因为f(0)=0)
第一直觉是递归,从n-1开始,但是内存超了
所以换了思路,从1开始递归,一直到n-1,这样就不用将前面求的值都保存了
class Solution {
public:
int jumpFloorII(int number) {
if(number==0)
return 0;
else if(number==1)
return 1;
else
{
int a=1,count=1;
while(count<number)
{
a+=jumpFloorII(count);
count++;
}
/*while(number!=0)
{
a+=jumpFloorII(number--);
}*/
return a;
}
}
};