目录
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。
求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
方法一:递归
递推关系为斐波拉契数列:F(n)=F(n-1)+F(n-2)
public class Solution {
public int JumpFloor(int target) {
if(target==1) {
return 1;
}else if(target==2){
return 2;
}else {
return JumpFloor(target - 1) + JumpFloor(target - 2);
}
}
}
递归的方法时间消耗较大
方法二:循环
循环实现递推关系:F(n)=F(n-1)+F(n-2)
public class Solution {
public int JumpFloor(int target) {
if(target<=0) {
return 1;
}else if(target==1){
return 1;
}else {
int fn_1=1;
int fn_2=1;
int fn=0;
for (int i = 2 ; i <= target; i++) {
fn=fn_1+fn_2;
fn_2=fn_1;
fn_1=fn;
}
return fn;
}
}
}
发现时间复杂度减少了好多,