美文网首页
[LeetCode] 45. Jump Game II(hard

[LeetCode] 45. Jump Game II(hard

作者: 弱花 | 来源:发表于2018-11-02 11:35 被阅读0次

    原题

    题意:
    Jump Game的衍生题(题解),题意求跳到最后一格所需最少步数,(默认所测数据永远可以跳到最后一格)。
    思路:
    利用贪心,遍历数组,记录在每一步可跳跃到的最大区域。
    1.当前步数 超过已覆盖范围,则表示需要进行跳跃,同时更新已覆盖区域,可覆盖区域。
    2.当前步数 在已覆盖范围内,说明无需进行跳跃,同时更新可覆盖区域。

    第一步
    在这里插入图片描述
    在这里插入图片描述
    /**
     * @param {number[]} nums
     * @return {number}
     */
    var jump = function (nums) {
        var hasCover = 0; // 当前已覆盖的区域
        var maxCover = 0; // 最右边可覆盖的区域
        var res = 0;
        for (let i = 0; i < nums.length; i++) {
            if (i > hasCover) //超过已覆盖区域 需要跳步
            {
                hasCover = maxCover;
                res++;
                if (hasCover>=nums.length) {
                    break;
                }
            }
            maxCover = Math.max(maxCover, nums[i] + i);
        }
        return res;
    };
    

    相关文章

      网友评论

          本文标题:[LeetCode] 45. Jump Game II(hard

          本文链接:https://www.haomeiwen.com/subject/nliqxqtx.html