【贪心算法】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 复制代码
相关推荐
2501_945424805 分钟前
C++跨平台开发实战
开发语言·c++·算法
m0_672703317 分钟前
上机练习第50天
算法
中科院提名者16 分钟前
莫比乌斯反演(Möbius Inversion)
算法
Tisfy20 分钟前
LeetCode 1727.重新排列后的最大子矩阵:枚举矩形底边是哪一行 + 排序
算法·leetcode·矩阵
Via_Neo25 分钟前
日期问题和日期常用API
数据结构·算法
2301_8008951036 分钟前
2025蓝桥杯B组初赛--备战蓝桥杯版h
职场和发展·蓝桥杯
_饭团41 分钟前
指针核心知识:5篇系统梳理2
c语言·笔记·学习·leetcode·面试·改行学it
罗湖老棍子42 分钟前
Maximum Subarray Sum II最大连续区间和(CSES- P1644)
算法·滑动窗口·单调队列
小年糕是糕手1 小时前
【C++】string类(三)
开发语言·数据结构·c++·程序人生·算法
胖祥1 小时前
onnx之NodeComputeInfo
开发语言·c++·算法