package com.company;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
int[] nums = {7, 0, 9, 6, 9, 6, 1, 7, 9, 0, 1, 2, 9, 0, 3};
int result = jump(nums);
System.out.println(result);
}
public static int jump(int[] nums) {
if (nums == null || nums.length == 0 || nums.length == 1) {
return 0;
}
//跳跃次数
int count = 0;
//当前覆盖的最大区域
int curDistance = 0;
//最大覆盖区域
int maxDistance = 0;
for (int i = 0; i < nums.length; i++) {
//在可覆盖区域内更新最大的覆盖区域
maxDistance = Math.max(i + nums[i], maxDistance);
//说明当前一步,再跳一步就到达了末尾
if (maxDistance >= nums.length - 1) {
count++;
break;
}
//走到当前覆盖的最大区域时,更新下一步可达的最大区域
if (i == curDistance) {
curDistance = maxDistance;
count++;
}
}
return count;
}
}
java相关-贪心算法-跳跃游戏II-力扣45
最新推荐文章于 2025-07-08 17:08:10 发布