動態規劃
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 輸入...