题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:台阶数分别为0,1,2,3,4,5跳法分别为:0,1,2,3,5,8,因此,除了1,2阶台阶,其他的符合菲波拉契数列
方法1:递归法
【运行时间:556ms 占用内存:8536k】
public class Solution {
public int JumpFloor(int target) {
if(target==0) return 0;
else if(target==1) return 1;
else if(target==2) return 2;
else
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
方法2:动态规划
【运行时间:13ms 占用内存:8080k】
public class Solution {
public int JumpFloor(int target) {
if(target==0) return 0;
if(target==1) return 1;
if(target==2) return 2;
int result=0;
int n1=1;
int n2=2;
for(int i=3;i<=target;i++){
result=n1+n2;
n1=n2;
n2=result;
}
return result;
}
}