class Solution {
public boolean canJump(int[] nums) {
int n = nums.length;
if (n <= 1) return true;
//前n-1个元素能到达的最远距离
int maxDistance = 0;
for (int i = 0; i <= maxDistance; i++) {
//每次取最大的跳跃步数,更新最远距离
maxDistance = Math.max(maxDistance, i + nums[i]);
//如果最远距离大于等于最后一个元素的下标,说明能够到达
if (maxDistance >= n - 1) return true;
}
//最远距离不再改变,且没有到末尾元素
return false;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)