Leetcode--jump game (最大跳)

来源:互联网 发布:日式家具 知乎 编辑:程序博客网 时间:2024/05/22 01:42

问题:

给定非负整数数组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


原创粉丝点击