55 跳躍遊戲

2021-10-07 12:36:24 字數 972 閱讀 1690

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

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

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

每達到乙個點,就遍歷其可以走的步數

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