55 跳躍遊戲

2021-09-22 12:23:31 字數 1089 閱讀 5104

動態規劃

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

):# 若跳不到i 自然也跳不到i後面的所有索引

if maxindex < i:

return

false

maxindex =

max(maxindex, i + nums[i]

)if maxindex >=

len(nums)-1

:return

true

else

:return

false

動態規劃

逆序思維

i 表示當前能到達最後乙個位置的最小索引

class

solution

:def

canjump

(self, nums: list[

int])-

>

bool:if

len(nums)

<=1:

return

true

i =len(nums)-1

for j in

range

(len

(nums)-2

,-1,

-1):

if i - j <= nums[j]

: i = j

return i ==

0

55 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fa...

55 跳躍遊戲

跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 ...

55 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙個位置。示例 2 輸入...