题目
题目链接
题解
class Solution {
public boolean canJump(int[] nums) {
return greed(nums);
}
/**
* 本题思路:贪心和动态规划的结合
*/
private boolean greed(int[] nums) {
if (nums == null || nums.length <= 1) {
return true;
}
// 能跳到的最佳坐标
int next = 0;
for (int i = 0; i < nums.length; i++) {
if (i <= next) {
// 遍历到每个位置时都重新计算最佳坐标,等价于更新状态
next = Math.max(next, i + nums[i]);
}
// 当最佳坐标大于等于数组最大下标时代表着可以跳到末尾
if (next >= nums.length - 1) {
return true;
}
}
return false;
}
}