45. Jump Game II
2026/1/12大约 1 分钟约 333 字
45. Jump Game II
难度: Medium
题目描述
You are given a 0-indexed array of integers nums of length n. You are initially positioned at index 0.
Each element nums[i] represents the maximum length of a forward jump from index i. In other words, if you are at index i, you can jump to any index (i + j) where:
0 <= j <= nums[i]andi + j < n
Return the minimum number of jumps to reach index n - 1. The test cases are generated such that you can reach index n - 1.
Example 1:
Input: nums = [2,3,1,1,4] Output: 2 Explanation: The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 steps to the last index.
Example 2:
Input: nums = [2,3,0,1,4] Output: 2
Constraints:
1 <= nums.length <= 1040 <= nums[i] <= 1000- It's guaranteed that you can reach
nums[n - 1].
解题思路
代码实现
解决方案
java
class Solution {
public int jump(int[] nums) {
int n = nums.length;
if (n == 1) {
return 0;
}
int jumps = 0;
int currentMax = 0;
int nextMax = 0;
for (int i = 0; i < n; i++) {
nextMax = Math.max(nextMax, i + nums[i]);
if (i == currentMax) {
jumps++;
currentMax = nextMax;
if (currentMax >= n - 1) {
break;
}
}
}
return jumps;
}
}