LeetCode 45. 跳跃游戏 II
原题链接
困难
作者:
LangB
,
2020-10-30 15:21:13
,
所有人可见
,
阅读 187
class Solution {
public int jump(int[] nums) {
if (nums.length == 1) {
return 0;
}
// 前一个能够到达的最远位置,如果遍历到了此位置,则说明需要下一跳,以到达更远的位置
int reach = 0;
// 当前能到达的最远位置
int nextReach = nums[0];
// 跳跃次数
int step = 0;
for (int i = 0; i < nums.length; i++) {
// 更新能到达的最远位置
nextReach = Math.max(i + nums[i], nextReach);
if (nextReach >= nums.length - 1) {
return step + 1;
}
// 遍历到了此位置,则说明需要下一跳,以到达更远的位置
if (i == reach) {
step++;
reach = nextReach;
}
}
return step;
}
}