题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
public class Solution {
public int JumpFloor(int target) {
/*//这种代码不支持,因为递归遍历如果是100,会产生太多的重复值
if(target==-1){
return 0;
}
if(target == 2){
return 2;
}
if(target == 1){
return 1;
}
return JumpFloor(target-1)+JumpFloor(target-2);
}
}*/
//第二种解法;推荐使用,从上往下进行运算
if(target == -1){
return 0;
}
if(target == 2){
return 2;
}
if(target == 1){
return 1;
}
int one = 1;
int two = 2;
int sum = 0;
for(int i = 2; i< target;i++){
//先计算上次的台阶的之和
sum = two+one;
one = two;
two = sum;
}
return sum;
}
}