【编程题】跳台阶(Java实现)
题目来源
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目解答
方法一,递归
public class Solution {
public int JumpFloor(int target) {
if(target==1)
return 1;
if(target==2)
return 2;
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
方法二,循环加数组
public class Solution {
public int JumpFloor(int target) {
if(target==1)
return 1;
if(target==2)
return 2;
int[] arr=new int[target+1];
arr[1]=1;
arr[2]=2;
for(int i=3;i<=target;i++){
arr[i]=arr[i-1]+arr[i-2];
}
return arr[target];
}
}
方法三,循环加两个临时变量
public class Solution {
public int JumpFloor(int target) {
if(target==1)
return 1;
if(target==2)
return 2;
int fn=0,fn_1=2,fn_2=1;
for(int i=3;i<=target;i++){
fn=fn_1+fn_2;
fn_2=fn_1;
fn_1=fn;
}
return fn;
}
}