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;

    }
}
相关推荐
玉树临风ives2 分钟前
atcoder ABC 453 题解
数据结构·c++·算法·图论·atcoder
田梓燊7 分钟前
leetcode 48
算法·leetcode·职场和发展
mmz120712 分钟前
深度优先搜索DFS2(c++)
c++·算法·深度优先
米粒114 分钟前
力扣算法刷题 Day 38 (打家劫舍专题)
算法·leetcode·职场和发展
Robot_Nav19 分钟前
RC-ESDF与Lazy Theta* 算法结合进行离线全局路径的生成
算法·全局规划·esdf
papership20 分钟前
【入门级-算法-7、搜索算法:深度优先搜索】
算法·深度优先
山甫aa34 分钟前
哈希集合-----从零开始的数据结构学习
数据结构·算法·哈希算法
say_fall37 分钟前
有关算法的简单数学问题
数据结构·c++·算法·职场和发展·蓝桥杯
Halo_tjn37 分钟前
Java 接口的定义重构学生管理系统
java·开发语言·算法
阿Y加油吧43 分钟前
栈的经典应用:从「有效括号」到「寻找两个正序数组的中位数」深度解析
开发语言·python·算法