核心思路维护一个变量当前能跳到的最远位置maxReach遍历每一位如果当前位置已经跳不到了i maxReach直接return false更新maxReach如果maxReach 最后一位下标提前return true解释i nums[i]在第 i 位最远能跳到哪只要每一步都能踩到并且最远覆盖到终点就成功一旦某一位你根本到不了就失败完整代码实现class Solution { public boolean canJump(int[] nums) { int maxReach 0; int n nums.length; for (int i 0; i n; i) { // 到不了当前位置直接失败 if (i maxReach) return false; // 更新能跳到的最远位置 maxReach Math.max(maxReach, i nums[i]); // 已经能跳到终点了 if (maxReach n - 1) return true; } return true; } }