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]中,返回即可。