public class Solution { private int res=0; public int jumpFloorII(int target) { if(target==0 || target == 1){ return 1; } int[] dp = new int[target+1]; dp[0]=dp[1]=1; for (int i = 2; i <= target; i++) { for (int j = 0; j < i; j++) { dp[i] = dp[i]+dp[j]; } } return dp[target]; } }
最简单的动态规划解法。其实就是创建一个数组,然后将答案存到数组里,最后从0到target的位置相加存在dp[target]中,返回即可。