思路:还是跟跳台阶的思路一致,不过这次不是分两种情况,而是分n种,也就是加个for循环就可以了。
class Solution {
public:
int jumpFloorII(int number) {
int* a = new int[number+1];
if(number<=0) return 0;
if(number==1) return 1;
a[0] = 1;//最后一次跳n级的跳法
a[1] = 1;
for(int i=2;i<=number;i++)
{
for(int j=i-1;j>=0;j--)
{
a[i] += a[j];
}
}
return a[number];
}
};