116. Jump Game

題目

https://www.lintcode.com/problem/jump-game/description?_from=ladder&&fromId=2

實現

  1. 維護一個能跳到最遠的變量
  2. 如果 max_jump >= i (保證可以繼續跳了) 且 A[i] + i >= max_jump (保證當前位置跳後大於 max_jump) 就更新 max_jump
  3. 最後再判斷 max_jump >= length - 1 即可(這個可以參照 A = [0] 來思考)

代碼

class Solution:
    """
    @param A: A list of integers
    @return: A boolean
    """
    def canJump(self, A):
        if A is None or len(A) == 0:
            return False

        max_jump = A[0]
        for i in range(len(A)):
            if max_jump >= i and A[i] + i >= max_jump:
                max_jump = A[i] + i
        
        return max_jump >= len(A) - 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章