55. 跳跃游戏(Java)

题目描述:

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

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

输入:

nums = [2,3,1,1,4]

输出:

true

解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

代码实现:

java 复制代码
public class Demo4 {
    public static void main(String[] args) {
        int[] nums = new int[]{2,3,1,1,4};
        System.out.println(canJump(nums));//true
    }

    public static boolean canJump(int[] nums) {
        //记录当前能够跳跃到的最大位置
        int max = 0;
        //遍历数组
        for (int i = 0; i < nums.length; i++) {
            //当max不小于i时,才让max更新一直最大跳跃长度
            if (max >= i) {
                //更新最大一跳
                max = Math.max(max, nums[i] + i);
                if (max >= nums.length - 1) {
                    //如果当前能够跳到最后一个元素的位置,直接返回true
                    return true;
                }
            }
        }
        return false;
    }
}
相关推荐
koo364几秒前
12.14周报
人工智能·算法
自在极意功。11 分钟前
深入解析JDBC:Java数据库操作的基础
java·开发语言·数据库·jdbc
程序员鱼皮12 分钟前
什么是负载均衡?不就是加台服务器嘛!
java·后端·计算机·程序员·编程经验
加洛斯19 分钟前
Spring Task从入门到精通:定时任务开发完整教程
java·后端
月明长歌22 分钟前
【码道初阶】Leetcode155踩坑最小栈问题:最小栈:算法对了,却输给了 Java 的 “==“?
java·算法·
小飞Coding24 分钟前
你写的 equals() 和 hashCode(),正在悄悄吃掉你的数据!
java·后端
dragoooon3427 分钟前
[C++——lesson26.「多态」]
java·c++·学习方法·多态
我送炭你添花29 分钟前
Pelco KBD300A 模拟器:05.校验算法终极对比 + 完整 100+ 指令封装 + KBD300A 所有隐藏功能函数化
python·算法·自动化·运维开发
计算机学姐32 分钟前
基于SSM的网上花店销售系统【2026最新】
java·vue.js·mysql·java-ee·tomcat·intellij-idea·mybatis
DuHz32 分钟前
汽车FMCW雷达互扰下的快速目标检测:谱峰累积法与泊松CFAR精读与推导
论文阅读·算法·目标检测·汽车·信息与通信·信号处理