給定乙個非負整數陣列,你最初位於陣列的第乙個位置。這裡是跳躍遊戲的第一題,要判斷是否可以通過跳躍達到最後乙個位置,首先明確乙個問題,這裡到達最後乙個位置可以從任意乙個的地方跳到最後。如果能跳躍到最後那麼久應該可以到達陣列中的任意位置才是合理的。那麼下乙個問題是我們再當前位置最遠可以到達哪乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後乙個位置。
示例 1:
輸入: [2,3,1,1,4]
輸出: true
解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後乙個位置。
示例 2:
輸入: [3,2,1,0,4]
輸出: false
解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。
我們用nums表示數字陣列下標是 index 那麼最遠可以到達的位置就是 index + nums[index],那麼問題就轉化為了 index + nums[index] 可以到達任意位置,也就是說 對於當前位置而言應該是 index 在 0 到 index - 1的範圍內的最大值可以到達當前位置,如果不能達到就說明失敗了。
接下來是**:
class solution(object):
def canjump(self, nums):
""":type nums: list[int]
:rtype: bool
"""max_value = 0
for index in range(len(nums)):
# 這裡說明前面的最大值無法達到當前位置
if index > max_value:
return false
# 記錄最大值
max_value = max(max_value,nums[index] + index)
return true
leetcode 跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙個位置。示例二 輸入 ...
leetcode跳躍遊戲
1.從後往前遍歷 設陣列長度len a.size 該題判斷能否到達最後乙個位置即len 1。1 開始時,設目標點為len 1,從倒數第二個元素開始往前遍歷,即從len 2,當前元素到目標點的距離為n,初始為n 1,因為倒數第二個到倒數第乙個只需要一步,2 判斷a len 2 的值是否大於n,如果大於...
LeetCode 跳躍遊戲
題目 跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否可以到達最後的位置。示例 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙個位置。an...