题目:55. 跳跃游戏
思路:贪心。
维护一个当前可以到达的最远位置,遍历的过程中更新它。如果最远位置大于数组长度,那么可以到达;如果当前位置大于最远位置,说明不可达到,因为当前位置已经不可到达了。
代码:
class Solution {
public boolean canJump(int[] nums) {
int n = nums.length;
int maxPos = 0;
for (int i = 0; i < n; i ++) {
if (i <= maxPos) {
maxPos = Math.max(maxPos, i + nums[i]);
if (maxPos >= n - 1) {
return true;
}
}
}
return false;
}
}