leetcode每日一题 - 55 55. 跳跃游戏
题解
这里贪心算法是最容易理解的,取出最后一位,从i = nums.length-2开始从后向前循环。只要前一位的值加上该值的索引大于等于当前记录值maxJump(即索引),就把maxJump赋值为当前索引i,最后判断maxJump是否为0,是的话返回true,否则为false。
贴出代码
let nums: number[] = [2, 3, 1, 1, 4]
// nums [2, 3, 1, 1, 4] 能够走的步数
// length 0 1 2 3 4 索引
function canJump(nums: number[]): boolean {
let maxJump = nums.length - 1
for (let i = nums.length - 2; i >= 0; i--) {
if (nums[i] + i >= maxJump) {
maxJump = i
}
}
return maxJump === 0
}
console.log(canJump(nums))