55 跳跃游戏
2020-10-01 本文已影响0人
zhaojinhui
题意:给定一个数组,返回是否能跳完最后一个数
思路:
- 定义一个当先最远能跳到的数的边界border
- 遍历数组,每次更新可跳跃的最远border
- 如果当前元素值是0且不是最后一个元素,且border只能遍历到不超过当前元素,返回false
- 如果遍历完每一个元素返回true
思想:普通array遍历
复杂度:时间O(n),空间O(1)
class Solution {
public boolean canJump(int[] nums) {
int border = 0;
int len = nums.length;
for(int i=0;i<len;i++) {
int cur = i+nums[i];
if(nums[i] == 0 && border <= i && border != len - 1) {
return false;
}
border = Math.max(cur, border);
}
return true;
}
}