HOT100题打卡第38天——贪心算法

55. 跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false

示例 1:

复制代码
输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

分析题目

要判断是否能到达最后一个下标,直接倒序遍历数组,从最后一个下标开始,遍历前面是否存在某个位置 i 能到达当前下标,如果存在的话就再往前找,是否存在某个位置能到达i位置,这样不断往前遍历,如果最终位置能到达0索引,说明从0索引能够到达最后一个下标

代码

java 复制代码
class Solution {
    public boolean canJump(int[] nums) {
        int lastPosition = nums.length - 1;
        for (int i = lastPosition; i >= 0; i--) {
            if (i + nums[i] >= lastPosition) {
                lastPosition = i;
            }

        }

        return lastPosition == 0;

    }
}
相关推荐
普通网友2 小时前
高性能TCP服务器设计
开发语言·c++·算法
醒过来摸鱼2 小时前
9.12 sinc插值
python·线性代数·算法·numpy
普通网友2 小时前
C++与硬件交互编程
开发语言·c++·算法
liliangcsdn2 小时前
EnsembleRetriever中的倒数融合排序算法
算法·排序算法
HUTAC2 小时前
重要排序算法(更新ing)
数据结构·算法
虹科测试测量3 小时前
德思特干货 | 单通道、多通道衰减器与衰减矩阵:如何选择合适的衰减方案
服务器·测试工具·算法·矩阵
mit6.8244 小时前
py期中实验选题:实现天气预测
python·算法
xuehaikj4 小时前
YOLOv8多场景人物识别定位与改进ASF-DySample算法详解
算法·yolo·目标跟踪
Wenhao.4 小时前
LeetCode 救生艇
算法·leetcode·golang