【贪心算法】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 复制代码
相关推荐
power 雀儿17 小时前
掩码(Mask)机制 结合 多头自注意力函数
算法
会叫的恐龙17 小时前
C++ 核心知识点汇总(第六日)(字符串)
c++·算法·字符串
小糯米60117 小时前
C++顺序表和vector
开发语言·c++·算法
Hello.Reader18 小时前
Flink Kubernetes HA(高可用)实战原理、前置条件、配置项与数据保留机制
贪心算法·flink·kubernetes
微祎_18 小时前
Flutter for OpenHarmony:构建一个 Flutter 重力弹球游戏,2D 物理引擎、手势交互与关卡设计的工程实现
flutter·游戏·交互
We་ct18 小时前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript
Lionel68918 小时前
分步实现 Flutter 鸿蒙轮播图核心功能(搜索框 + 指示灯)
算法·图搜索算法
小妖66618 小时前
js 实现快速排序算法
数据结构·算法·排序算法
xsyaaaan18 小时前
代码随想录Day30动态规划:背包问题二维_背包问题一维_416分割等和子集
算法·动态规划
zheyutao19 小时前
字符串哈希
算法