1. 程式人生 > >[LeetCode] 45. Jump Game II Java

[LeetCode] 45. Jump Game II Java

心算 all can earch rst eps maximum position number

題目:

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Your goal is to reach the last index in the minimum number of jumps.

For example:
Given array A = [2,3,1,1,4]

The minimum number of jumps to reach the last index is 2

. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)

Note:
You can assume that you can always reach the last index.

題意及分析:使用貪心算法,每次找到該點前能到達的最大點lastreach,如果lastreach大於i,那麽重新計算能達到的最大點,否則step+1,重置lastSearch,重新計算下一步能達到的最大點。

代碼:

class Solution {
    public int jump(int[] nums) {
        if (nums.length <= 1) return
0; int reach = nums[0]; //記錄從當前點能達到的最大位置 int lastreach = 0; //記錄前面能到達的最大點 int step = 0; for(int i=1;i<=reach && i<nums.length;i++){ if(i > lastreach){ step++; lastreach = reach; } reach
= Math.max(reach, i+nums[i]); } if(reach < nums.length-1) return 0; return step; } }

[LeetCode] 45. Jump Game II Java