【剑指offer-解题系列(9)】变态跳台阶
2017-05-17 18:05
281 查看
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析
假设 a是跳上n级台阶的总步数
1、青蛙可以一次猛跳上n级!
2、青蛙可以在前n-1级台阶找出 a[n-1] 种跳法,然后最后跳1步,总共a[n-1]种;
3、青蛙可以在前n-2级台阶找出 a[n-2] 种跳法,然后最后跳2步,总共a[n-2]种;
4、青蛙可以在前n-3级台阶找出 a[n-3] 种跳法,然后最后跳3步,总共a[n-3]种;
。。。。。。使用a数组保存之前的计算结果就行。
所以:a
=1 + a[n-1]+a[n-2]+a[n-3]+...+a[1];
代码实现
int jumpFloorII(int number) {if(number<=0)return 0;
int*a = new int[1+number];
memset(a,number,0);
int res = jumpFloorII(number, a );
delete[]a;
return res;
}
int jumpFloorII(int number, int *a ){
if(number==0)
return 0;
if(number==1){
a[1]=1;
return a[1];
}
else{
for(int i = 1;i<number;i++){
if(a[i]==0){
a[i] = jumpFloorII(i,a );
}
a[number]+=a[i];
}
a[number]++;
}
return a[number];
}
相关文章推荐
- 【剑指offer-解题系列(7、8)】斐波那契数列、跳台阶
- [牛客网,剑指offer,python] 变态跳台阶
- 剑指offer--变态跳台阶
- 剑指offer 9.6 变态跳台阶
- 剑指Offer----变态跳台阶
- 【剑指offer-解题系列(18)】树的镜像
- 【剑指offer-解题系列(30)】最小的K个数
- 【剑指offer-解题系列(39)】二叉树的深度
- [剑指Offer]2.变态跳台阶
- 【剑指offer-解题系列(46)】扑克牌顺子
- 剑指offer 变态跳台阶
- 【练习笔记】剑指offer-变态跳台阶
- 剑指offer 9 变态跳台阶
- 剑指Offer——变态跳台阶
- [牛客网,剑指offer,python] 变态跳台阶
- 剑指Offer------变态跳台阶
- 剑指offer-跳台阶and变态跳台阶and矩形覆盖-Java
- 剑指offer——变态跳台阶
- 剑指offer_9 变态跳台阶
- 【剑指offer-解题系列(34)】丑数