[一起來刷leetcode吧][34]--No.55 jump game

這篇文章是程序自動發表的,詳情可以見這裏
href="http://ounix1xcw.bkt.clouddn.com/github.markdown.css" rel="stylesheet">

這是leetcode的第55題--jump game

  題目

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.

  思路 由於只有非負數,不能成功的點一定是當前位置爲0,所以可以將列表中所以的0找出來,並記下位置(下標),然後從這個位置開始往前搜索,若存在能跳過此位置的點,則能跳過,去除這個0,一直跳過所有0


  

show me the code

    class Solution(object):
    def canJump(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """

        if len(nums) == 1:
            return True
        zeros = []
        for i,j in enumerate(nums):
            if j == 0:
                zeros.append(i)
        while zeros != []:
            i = zeros[0]
            tmp = i - 1
            flag = 0
            while tmp >= 0:
                if nums[tmp] > i-tmp  or nums[tmp] tmp 1 >=len(nums):
                    flag = 1
                    break
                tmp -= 1
            if flag == 0 :
                return False
            del zeros[0]

        return True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章