leetcode55 跳躍遊戲

2021-09-24 03:01:42 字數 1069 閱讀 2709

一次遍歷,當前數和指標相加,遍歷的時候取最大值,將最大值與下一次的指標作比較,小的話直接返回false,遍歷完成的話就輸出true。

class solution:

def canjump(self, nums: list[int]) -> bool:

#注意判斷特殊情況

if not nums or len(nums) == 1:return true

max_dist = 0

for i in range(len(nums)):

if max_dist > len(nums)-1: #大於最後一位的說明直接滿足要求,返回true

return true

if max_dist < i: #前一位置的最大可達位置小於當前位置,說明跳不過去,直接return false

return false

max_dist = max(max_dist,i+nums[i]) #每次更新最大可達位置

return true

從後往前一直取能到達終點的下標,最後看0不能取,取0說明能夠跳完。

class solution:

def canjump(self, nums: list[int]) -> bool:

if not nums or len(nums) == 1:return true

#首先將target設定為最後一位

target = len(nums)-1

for i in range(len(nums)-2,-1,-1):

#如果當前位置+步數大於等於target位(即能跳過),則把target更新為當前位

if nums[i] + i >= target:

target = i

return target == 0

LeetCode55 跳躍遊戲

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

LeetCode 55 跳躍遊戲

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

LeetCode 55 跳躍遊戲

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