跳躍遊戲I leetcode55

2021-09-29 12:46:34 字數 1103 閱讀 1899

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

判斷你是否能夠到達最後乙個位置。

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 ...