题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
代码
public class Solution {
public int JumpFloorII(int target) {
if(target < 2){
return 1;
}
int[] a = new int[target + 1];
a[0] = 1;
a[1] = 1;
for(int i = 2; i <= target; i++){
for(int j = 0; j < i; j++){
a[i] += a[j];
}
}
return a[target];
}
}
与上一篇跳台阶问题类似,只不过这只青蛙比较变态,可以跳无限远。
所以跳到一个台阶有n中选择,从0跳上去,1跳上去,2跳上去。。。。n-1跳上去,都可以。
所以就不太好使用递归了。仍让按照上一次迭代的思路进行求解。
普通青蛙问题——>https://www.jianshu.com/p/aafbb0c75990