leetcode中等5545跳跃游戏12

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等5545跳跃游戏12相关的知识,希望对你有一定的参考价值。

55、跳跃游戏(能否到达)


思路:贪心
顺序遍历数组,记录每一步的最大覆盖范围cover,cover 大于数组长度时返回true;
注意:通常 cover 是比当前遍历到的位置更远的,如果 cover 小于 当前遍历位置,代表无法继续向前,直接返回 false

class Solution {
    public boolean canJump(int[] nums) {
        int cover=0;
        for(int i=0;i<nums.length;i++){
            if(i>cover) return false;
            cover=Math.max(cover,i+nums[i]);
            if(cover>=nums.length-1) return true;
        }
        return false;
    }
}

45、跳跃游戏2(最小步数)


思路:
遍历移动下标达到了当前覆盖的最远距离下标时,步数就要加一,来增加覆盖距离

class Solution {
    public int jump(int[] nums) {
        if (nums == null || nums.length == 0 || nums.length == 1) {
            return 0;
        }
        int count=0;        
        int curDistance = 0;//当前的覆盖最大区域       
        int maxDistance = 0;//最大的覆盖区域
        for(int i=0;i<nums.length;i++){
            maxDistance=Math.max(maxDistance,i+nums[i]);
            //说明当前一步,再跳一步就到达了末尾
            if (maxDistance>=nums.length-1){
                count++;
                return count;
            }
            //走到当前覆盖的最大区域时,更新下一步可达的最大区域
            if (i==curDistance){
                curDistance = maxDistance;
                count++;
            }
        }
        return count;
    }
}

以上是关于leetcode中等5545跳跃游戏12的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode.55(跳跃游戏) - 中等

LeetCode55.跳跃游戏(中等)贪心算法/动态规划

⭐算法入门⭐《队列 - 单调队列》中等01 —— LeetCode 1696. 跳跃游戏 VI

动态规划跳跃游戏(III)

55. 跳跃游戏-贪心-中等难度

算法动态规划 ⑦ ( LeetCode 55. 跳跃游戏 | 算法分析 | 代码示例 )