题目(5¥)
题目地址:https://leetcode-cn.com/problems/jump-game/
题解
很好理解,一遍遍历,维护目前能到达的最远的下标,如果下标大于等于最后一个下标,即为成功。
剪支:
- 当 maxIndex 已经大于等于 len - 1 时,直接返回 true,没有继续遍历的必要。
- 当 i > maxIndex 证明,跳跃的路已经断了,没必要继续遍历。
源码
class Solution {
public boolean canJump(int[] nums) {
int maxIndex = 0;
int len = nums.length;
for (int i = 0; i < len; i++) {
if (maxIndex >= len - 1) return true;
if (i > maxIndex) return false;
if (maxIndex < i + nums[i]) maxIndex = i + nums[i];
}
return true;
}
}