給定乙個非負整數陣列,你最初位於陣列的第乙個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後乙個位置。
eg1:
輸入: [2,3,1,1,4]
輸出: true
解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後乙個位置。
eg2:
輸入: [3,2,1,0,4]
輸出: false
解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。
思考:1.首先開始時是從首個位置開始,如果首個位置的值nums[0] >= len(nums) - 1那麼說明一下就可以跳到最後面
2.如果從nums[0]開始nums[0] < len(nums) - 1那麼在開始到nums[0] 這個範圍內,肯定是找乙個最大的值,的位置進行跳躍,這樣能保證在這個範圍內,起跳後,達到的位置最遠
3.考慮第二點,如果要找在變區間內的最大點,有點麻煩,那麼我們從前往後找,每乙個位置能達到的最遠位置,然後,更新最遠位置
4.終止條件,最遠位置 >= len(nums) - 1 return true
指標 == 最遠位置 return false
class
solution
(object):
defcanjump
(self, nums)
:"""
:type nums: list[int]
:rtype: bool
"""len_nums =
len(nums)
max_step =
0for step in
range
(len_nums)
:if step > max_step:
return
false
max_step =
max(step + nums[step]
,max_step)
if max_step >= len_nums -1:
return
true
55 跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fa...
55 跳躍遊戲
動態規劃 f i 表示當前所能跳躍到的最大索引 class solution def canjump self,nums list int bool if len nums 1 return true 當前所能跳躍到的最遠索引 maxindex 0for i in range len nums 1 ...
55 跳躍遊戲
跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 ...