力扣:45. 跳跃游戏 II

动态规划:

1.声明一个dp数组来表示到下标i时要跳转的最小次数,同时要个每个dp数组的值赋值为最大。之后初始化dp【0】=0,用for循环来进行遍历下标i和遍历下标i之前的值,判断条件为如果i之前的某个下标跳转的距离>=i时要根新dp【i】的值 ,递推公式为dp【i】=math,min(dp[i],dp[j]+1)。表示在这个跳转范围里dp【i】的值为dp【j】加一。

class Solution {
    public int jump(int[] nums) {
        //表示的是跳转到下标为i时要跳转的最小次数
        int [] dp=new int [nums.length];
        //给每个dp数组的值赋值为数组的最大长度
        for(int i=1;i=i){
                    dp[i]=Math.min(dp[i],dp[j]+1);
                }
            }
        }
        return dp[nums.length-1];
    }
}

你可能感兴趣的:(动态规划,游戏,算法)