非递归
使用dp[]数组进行存储
public class Solution {
public int jumpFloor(int target) {
int[] dp = new int[41];
dp[1]=1;
dp[2]=2;
for(int i=3;i<target+1;i++){
dp[i]=dp[i-1]+dp[i-2];
}
return dp[target];
}
}
优化:每次只用到i-1、i-2两个值,因此可以优化存储空间
public class Solution {
public int jumpFloor(int target) {
if(target==1)return 1;
if(target==2)return 2;
int a=1;
int b=2;
int dp_i=0;
for(int i=3;i<target+1;i++){
dp_i=a+b;
a=b;
b=dp_i;
}
return dp_i;
}
}