【贪心算法】Leetcode 55. 跳跃游戏

【贪心算法】Leetcode 55. 跳跃游戏

---------------🎈🎈55. 跳跃游戏 题目链接🎈🎈-------------------

解法1

关键点在于:不用拘泥于每次究竟跳几步,而是看覆盖范围,覆盖范围内一定是可以跳过来的,不用管是怎么跳的。

⭐️每次移动取最大跳跃步数(得到最大的覆盖范围),每移动一个单位,就更新最大覆盖范围coverRange。

java 复制代码
class Solution {
    public boolean canJump(int[] nums) {
        // 遍历数组,nums[i]代表当前可以覆盖到的最大范围coverRange,
        // 在循环中不断的修改这个coverRange
        // 之后在这个范围中遍历,最终看能否覆盖到最后一个下标
        if(nums.length == 1) return true;
        int coverRange = 0;
        for(int i = 0; i <= coverRange; i++){
            coverRange = Math.max(coverRange,nums[i]+i); //动态更新coverRange
            if(coverRange >= nums.length-1) return true;
        }
    
        return false;
    }
}          

解法2

时间复杂度O(N)

空间复杂度O(N)

java 复制代码
相关推荐
记得早睡~3 分钟前
leetcode654-最大二叉树
javascript·数据结构·算法·leetcode
圣保罗的大教堂3 分钟前
leetcode 2070. 每一个查询的最大美丽值 中等
leetcode
旧厂街小江8 分钟前
LeetCode 第63题:不同路径 II
算法·程序员·架构
写代码的橘子n22 分钟前
unordered_set 的常用函数
数据结构·算法·哈希算法
EnigmaCoder33 分钟前
蓝桥杯刷题周计划(第二周)
学习·算法·蓝桥杯
黑金IT37 分钟前
深入理解人脸特征向量及图片转换方法与开发架构
算法·架构
HP-Patience1 小时前
决策树 vs 神经网络:何时使用?
神经网络·算法·决策树
AI很强1 小时前
matlab常见的配图代码实现1
开发语言·算法·matlab
飞川0011 小时前
🚀 力扣热题 78:子集(详细解析)
算法
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧1 小时前
C语言_数据结构总结6:链式栈
c语言·开发语言·数据结构·算法·链表·visualstudio·visual studio