nums[i] 表示能跳的最远距离
i+nums[i] 表示能跳到的最远距离下标,当能跳到的最远距离大于最后一个位置时表示TRUE
初始化最远距离为0
class Solution(object):
def canJump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
n = len(nums)
MAX_i = 0 # MAX_i表示最远可达位置,初始没跳为0
for i in range(0, n):
if i <= MAX_i: # 在比当前最远可达位置小的位置,找新的起跳点
MAX_i = max(MAX_i, i + nums[i]) # 更新最远可达位置
if MAX_i >= n - 1:
return True
return False
if __name__ == '__main__':
nums = [0, 0, 3]
Sol = Solution()
res = Solution.canJump(Sol, nums)
print(res)