题目的链接在这里:https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
题目大意
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。数据范围:1 \le n \le 201≤n≤20
进阶:空间复杂度 O(1)O(1) , 时间复杂度 O(1)O(1)
一、示意图
二、解题思路
动态规划
动态规划
代码如下:
public class Solution {
public int jumpFloorII(int target) {
//先进行边界判断
if(target==0||target==1)
return target;
int dp[]=new int[target+1];
dp[0]=0;
dp[1]=1;
dp[2]=2;
//正常来说dp[n]就等于他下面所有的方法之合了
for(int i=3;i<=target;i++){
//全都加一遍
for(int j=0;j<i;j++){
dp[i]+=dp[j];
}
//还有一种方法是直接跳到
dp[i]++;
}
return dp[target];
}
}