Jumping Game II [Greedy Algorithm]

  1. Jumping Game II
    Insert image description here
    Insert image description here
class Solution {
    
    
    public int jump(int[] nums) {
    
    
        int cur = 0;//当前最大覆盖路径
        int next = 0;//下一步的最大覆盖路径
        int res = 0;//存放结果,到达终点时最少的跳跃步数
        for (int i = 0; i < nums.length; i++) {
    
    //遍历数组,以给出数组以一个元素往后遍历
                next = Math.max(i + nums[i], next);//遍历数组时,先进行当前元素的下一步覆盖最大路径计算
                if (i == cur) {
    
    //遍历到当前覆盖路径的最后一个索引位置
                    if (cur != nums.length - 1) {
    
    //如果还没有到达终点
                    res++;
                    cur = next;//更新当前覆盖最大路径
                    if (cur >= nums.length - 1) {
    
    //如果当前覆盖路径已可以到达终点
                        return res;
                    }
                }
            }
        }
        return res;
    }
}

Guess you like

Origin blog.csdn.net/weixin_47004707/article/details/132528171