Leetcode talk28 跳躍遊戲

2021-10-04 13:11:09 字數 994 閱讀 3574

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

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

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

示例1:

輸入:[2

,3,1

,1,4

]輸出:

true

解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1

, 然後再從位置 1 跳 3 步到達最後乙個位置。

示例2:

輸入:[3

,2,1

,0,4

]輸出:

false

解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。

思路:盡可能到達最遠位置(貪心)。

如果能到達某個位置,那一定能到達它前面的所有位置。

方法:初始化最遠位置為0,然後遍歷陣列,如果當前位置能到達,並且當前位置+跳數》最遠位置,就更新最遠位置。最後比較最遠位置和陣列長度。

複雜度:時間複雜度o(n),空間複雜度o(1)。

class solution:

def canjump

(self, nums)

: max_i =

0 #初始化當前能到達最遠的位置

for i, jump in enumerate

(nums)

: #i為當前位置,jump是當前位置的跳數

if max_i>=i and i+jump>max_i: #如果當前位置能到達,並且當前位置+跳數》最遠位置

max_i = i+jump #更新最遠能到達位置

return max_i>=i

python lintcode116 跳躍遊戲

給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。這個問題有兩個方法,乙個是貪心和動態規劃。貪心方法時間複雜度為o n 動態規劃方法的時間複雜度為為o n 2 我們手動設定小型資料集,使大家可以通過測試的兩種方...

LeetCode刻意練習28 跳躍遊戲

題目 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。方法一 回溯法 有一組資料超時。遍歷每個元素,對於每個元素i,先跳最大的步數nums i 到達下乙個元素next。如果能夠跳出這個陣列 nums i i nums...

大爽Python入門練習題 2 8 跳躍輸出

大爽python入門練習題總目錄 第二章 中期練習題 中等 第8題 簡介 實現乙個函式jump print lst 接受乙個陣列 列表 lst作為引數。先將lst的首項作為當前項,輸出當前項,並將索引往後移動當前項的值,最後一項,索引往後移動一格,則移動到首項,相當於把列表看作乙個環 然後將索引對應...