给你一个非负整数数组 nums
,你最初位于数组的第一个下标。数组中的每个元素代表你在该下标可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
一开始想了一个比较笨的方法,就是从后往前推,递归的判断每一个元素能否到达最后一个元素。
后来发现从前往后推更简单,直接用一个变量right
来记录当前能到达的最远位置。每次遍历到一个元素时,如果当前元素的下标小于等于right
,就更新right
为max(right, i+nums[i])
。如果在遍历过程中发现right
已经大于等于最后一个元素的下标,就可以返回True。
1 | class Solution: |