public class Solution {
public boolean canJump(int[] nums) {
if (nums == null || == 0) {
return false;
}
int farthest = 0; // 能够到达的最远位置
for (int i = 0; i < ; i++) {
// 如果当前位置已经超过或等于最远位置,那么无法再向前跳了
if (i > farthest) {
return false;
}
// 更新能够到达的最远位置
farthest = (farthest, i + nums[i]);
// 如果能够到达的最远位置已经包括或超过了最后一个下标,则返回true
if (farthest >= - 1) {
return true;
}
}
// 如果遍历结束还没有返回true,则默认返回false
return false;
}
public static void main(String[] args) {
Solution solution = new Solution();
int[] nums = {2, 3, 1, 1, 4};
((nums)); // 输出 true
int[] nums2 = {3, 2, 1, 0, 4};
((nums2)); // 输出 false
}
}