描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入:
2
返回值:
2
示例2
输入:
7
返回值:
21
java代码:
//动态规划,自底向上的方法计算
public class Solution {
public int jumpFloor(int target) {
int[] dp=new int[target+1]; //代表第n个台阶的跳发的种数
if(target<=1)
return target;
dp[0]=1; //没有台阶,把他看似一种跳法
dp[1]=1; //代表跳第一个台阶的跳法的种数
for(int i=2;i<=target;i++){
dp[i]=dp[i-1]+dp[i-2];
}
return dp[target];
}
}
java代码(递归)
public class Solution {
public int jumpFloor(int target) {
if(target<=3)
return target;
else{
return jumpFloor(target-1)+jumpFloor(target-2);
}
}
}