- 题目
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
- 示例
输入:nums = [3,2,1,0,4]
输出:false
- 算法
last表示可以跳到i点的第一个点
如果last==i,则表示没有点可以跳到i点,那i点以及后面的点肯定调不到
- 代码
class Solution {
public boolean canJump(int[] nums) {
int n = nums.length;
int last = 0;
for (int i = 1; i < n; i++) {
while (last != i && i > last + nums[last]) {
last++;
}
if (last == i) {
return false;
}
}
return true;
}
}