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

55. 跳跃游戏

解题思路

  • 定义变量 n 来存储数组 nums 的长度。
  • 初始化 farthest 变量为 0,用于记录当前能够到达的最远距离。
  • 使用一个 for 循环遍历数组,但是不包括数组的最后一个元素,因为我们的目标是看是否能到达最后一个位置。
  • 在循环内部,使用 Math.max(farthest, i + nums[i]) 来更新 farthest,这表示当前能到达的最远距离是之前计算的 farthest 和*当前位置加上当前位置能跳的最远距离中的较大值。
  • 如果在某一刻 farthest 小于或等于当前位置 i,意味着无法前进,因此返回 false。
  • 循环结束后,如果 farthest 大于或等于数组最后一个位置的索引,表示可以到达最后,返回 true
java 复制代码
class Solution {
    public boolean canJump(int[] nums) {
        int n = nums.length;
        int farthest = 0;

        for(int i = 0; i < n - 1; i++){
            farthest = Math.max(farthest,i + nums[i]);// 更新最远的跳跃距离

            if(farthest <= i){
                return false;
            }
        }

        return farthest >= n - 1;// 最大长度大于最后一个位置索引 表示可以到达
    }
}
相关推荐
啊我不会诶3 分钟前
2024ICPC西安邀请赛补题
c++·算法
谭欣辰32 分钟前
C++ 版Dijkstra 算法详解
c++·算法·图论
yuan1999732 分钟前
C&CG(列与约束生成)算法,来解决“风光随机性”下的微网鲁棒配置问题
c语言·开发语言·算法
wayz111 小时前
Day 11 编程实战:XGBoost金融预测与调参
算法·机器学习·金融·集成学习·boosting
念越1 小时前
算法每日一题 Day07|双指针求解和为S的两个数
算法·力扣
qeen871 小时前
【算法笔记】双指针及其经典例题解析
c++·笔记·算法·双指针
黎阳之光1 小时前
黎阳之光:以视频孪生+全域感知,助力低空经济破局突围
大数据·人工智能·算法·安全·数字孪生
programhelp_1 小时前
Roblox OA 真题分享(2026 最新)|在线游戏模拟题 + BQ,全程像在玩经营游戏
游戏
CM莫问2 小时前
详解机器学习中的马尔可夫链
人工智能·算法·机器学习·概率论·马尔可夫·马尔科夫
南宫萧幕2 小时前
基于 Luenberger 观测器的 PMSM 无速度传感器 id=0 矢量控制系统 Simulink 建模与实现(一)
算法·matlab·汽车·控制