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;

    }
}
相关推荐
Sunshine for you7 分钟前
C++中的职责链模式实战
开发语言·c++·算法
qq_4160187228 分钟前
C++中的状态模式
开发语言·c++·算法
2401_8845632429 分钟前
模板代码生成工具
开发语言·c++·算法
2401_8319207443 分钟前
C++代码国际化支持
开发语言·c++·算法
m0_672703311 小时前
上机练习第51天
数据结构·c++·算法
ArturiaZ1 小时前
【day60】
算法·深度优先·图论
2401_851272991 小时前
自定义内存检测工具
开发语言·c++·算法
☆5661 小时前
C++中的命令模式
开发语言·c++·算法
仰泳的熊猫2 小时前
题目2577:蓝桥杯2020年第十一届省赛真题-走方格
数据结构·c++·算法·蓝桥杯
CoovallyAIHub2 小时前
Pipecat:构建实时语音 AI Agent 的开源编排框架,500ms 级端到端延迟
深度学习·算法·计算机视觉