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过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

相关推荐
wdfk_prog9 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
Token掘金室9 小时前
JSON模式结构化输出报错
java·服务器·json
zr想努力10 小时前
GAS学习(UE5自用)
学习·ue5
秋饼10 小时前
Spring AI 2.0 接入 DeepSeek V4.1 Flash 生产级实战
java·ai·技术分享·后端开发
IT枫斗者枫哥10 小时前
Java 分批导出仍然 OOM?用 32 MiB 堆复现三种 CSV 写法
java
她说..10 小时前
MySQL JSON 处理学习文档
学习·mysql·json
shehuiyuelaiyuehao10 小时前
算法43,外观数列,模拟算法+双指针
java·算法
资讯综合10 小时前
一年级数学机构怎么选?与学习阶段相匹配的线上思维课程与线下机构差异分析
学习
lhldsg10 小时前
多商户团购系统源码:技术架构选型与二次开发实战指南
java·小程序·架构
亦暖筑序10 小时前
AgentScope Java 实战:@Tool 方法里到底该不该写业务逻辑?
java·agent·ai编程