55. Jump Game 【M】【66】

来源:互联网 发布:云计算软件 编辑:程序博客网 时间:2024/06/05 23:27

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position. 

Determine if you are able to reach the last index.

For example:
A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.


Subscribe to see which companies asked this question


贪心法,首先计算每个位置能够达到的最远的位置

然后用res表示当前位置能够走道的最远位置,每次循环的时候,直接取[i,res]之间的最大值,更新res

如果res达到最后一个元素,那么就是成功


class Solution(object):    def canJump(self, nums):        if len(nums) == 1:            return True        for i in xrange(len(nums)):            nums[i] += i        res = nums[0]        i = 1        goal = len(nums) - 1        while i <= res:            if i == res:                res = max(res,nums[i])                i += 1            else:                i,res = res,max(nums[i:res+1])            if res >= goal:                return True        return False



0 0
原创粉丝点击