LeetCode算法第45题:跳跃游戏 II

LeetCode算法第45题:跳跃游戏 II

首页休闲益智跳跃比赛2更新时间:2024-04-29

问题描述:

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

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

示例:

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

输出: 2

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

说明:

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

思路:

这道题目可以通过对数组的一个顺序遍历来实现.遍历到数组中的每个下标上的元素时,可以计算出当前下标可以跳跃的最大长度。从数组中的这个下标到它可以跳跃的最大长度之间的元素中,可以找到下一步跳跃的位置,使得找到的这个元素跳跃的长度最大。如果长度超过数组的长度跳跃结束;否则继续进行。

java代码:

public int jump(int[] nums) { int step = 0; int maxStep = 0; int curMaxStep = 0; for(int i = 0; i < nums.length - 1; i ){ maxStep = Math.max(maxStep,i nums[i]); if(curMaxStep == i){ step ; curMaxStep = maxStep; } } return step; }

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved