问题:
给定非负整数数组nums,每个整数代表在当前位置的最大步数,初始为止都是index=0的位置,判断是否能够到达数组的最后一个位置。如:A = [2,3,1,1,4]
,返回true
.A = [3,2,1,0,4]返回false
解题思路:
考虑用贪心算法,每一步只考虑当前可以到达的最大位置。因为当前可以到达的最大位置表示之前的位置都可以到达,可以用贪心算法。对数组进行一次遍历,存储最大位置即可
代码:
class Solution(object):
def canJump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
n = len(nums)
reach = 1
for i in range(len(nums)):
if reach > i:
reach = max(reach,i+nums[i]+1)
if reach >= n:
return True
return False