JAVA学习-练习试用Java实现跳跃游戏 II

问题:

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

目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: 2,3,1,1,4

输出: 2

解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

说明:

假设总是可以到达数组的最后一个位置。

解答思路:

java 复制代码
public class Solution {

    public int jump(int[] nums) {

        int steps = 0;

        int maxPos = 0; // 当前能够到达的最远位置

        int end = 0; // 上一步能够到达的最远位置

        for (int i = 0; i < nums.length - 1; i++) {

            maxPos = Math.max(maxPos, nums[i] + i);

            if (i == end) {

                end = maxPos;

                steps++;

            }

        }

        return steps;

    }


    public static void main(String[] args) {

        Solution solution = new Solution();

        int[] nums = {2, 3, 1, 1, 4};

        int minJumps = solution.jump(nums);

        System.out.println("最小跳跃次数:" + minJumps);

    }

}

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

相关推荐
mubei-1231 小时前
SpringDAO的用法
java·开发语言·数据库
happymagic1 小时前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
都叫我大帅哥4 小时前
给 Java 程序员的 CSRF 攻击详解:从原理到防御实战
java
江南十四行4 小时前
Spring框架核心(上)——IoC控制反转与DI依赖注入详解
java·后端·spring
fb_123455 小时前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
咸鱼翻身小阿橙5 小时前
现在这个四通道出现的问题
学习
码智社6 小时前
JSON 零基础到资深全体系教程
java·json
wgego7 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
IKUN家族7 小时前
Spring MVC(四)
java·spring·mvc
云贝教育-郑老师7 小时前
OceanBase 是如何搞定海量数据分片(Sharding)的?
学习·oceanbase·dba