太晚了,解析明天不上,可以使用贪心算法,也可以使用动态规划,先给出动态规划接发,比较暴力:
// An highlighted block
class Solution {
public int jump(int[] nums) {
int n = nums.length;
int[] dp = new int[n];
for(int i = 1 ; i < n ; i++)
{
dp[i] = 999999;
}
dp[0] = 0;
for(int i = 0; i < n ;i++)
{
for(int j = 1 ;j <= nums[i] && i + j <= n -1 ;j++)
{
dp[i + j] = Math.min(dp[i + j] , dp[i] + 1);
}
}
return dp[n - 1];
}
}