刷題筆記(七)——變態跳臺階 走臺階升級版
題目描述
一隻青蛙一次可以跳上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;
}
}
};