給定乙個非負整數陣列,你最初位於陣列的第乙個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後乙個位置。
每達到乙個點,就遍歷其可以走的步數
class solution(object):
def canjump(self, nums):
""":type nums: list[int]
:rtype: bool
"""def dfs(k):
if k == len(nums)-1:
return true
if nums[k] == 0:
return false
for i in range(1,nums[k]+1):
if dfs(k+i):
return true
return false
if len(nums) < 2:
return true
num = nums[0]
for i in range(1, num+1):
if dfs(i):
return true
return false
但是時間超出範圍。
class solution(object):
def canjump(self, nums):
if len(nums)<2:
return true
canmax = 0
for idx, num in enumerate(nums):
if idx > canmax:
return false
if canmax >= len(nums)-1:
return true
if num + idx > canmax:
canmax = num+idx
時間複雜度為o(n) 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 ...