题目描述
题目链接:https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
动态规划 dp[n]=dp[n-1]+dp[n-2]+…+dp[1]+1 n>=2
程序实现
public class Solution {
public int jumpFloorII(int target) {
//递推公式
//dp[n]=dp[n-1]+dp[n-2]+dp[1]+1
if(target<=0){
return 0;
}
if(target==1){
return 1;
}
//dp[1]=1;
//dp[2]=dp[1]+1=2;
//dp[3]=dp[1]+dp[2]+1=4
int[] dp=new int[target+1];
dp[1]=1;
for(int i=2;i<=target;i++){
dp[i]=1;
for(int j=1;j<i;j++){
dp[i]+=dp[j];
}
}
return dp[target];
}
}