题目描述:
代码实现:
- 贪心算法,我的思路好像跟那些题解的思路不太一样。首先做这道题,我先考虑的是什么情况可以出现false,就是除了数组的最后一位,有一位出现0且这个时候的max=i(因为max不可能小于i),除了这种情况,其他都是true.
- 时间复杂度:O(n)
/**
* @param {number[]} nums
* @return {boolean}
*/
var canJump = function(nums) {
var max = 0
for (var i = 0; i < nums.length - 1; i++ ) {
if (nums[i] + i > max) {
max = nums[i] + i
}
if (nums[i] === 0 && max === i) {
return false
}
}
return true
};