lettcode 跳躍遊戲

2021-10-05 17:45:13 字數 858 閱讀 9595

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

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

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

輸入: [2,3,1,1,4]

輸出: 2

解釋: 跳到最後乙個位置的最小跳躍數是 2。

從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。

方法一(超時):動態規劃
class

solution

if(num==n)

return n-1;

vectorint>>

flagdata

(n +

1, vector<

int>

(n +1,

1));

for(

int i =

1; i < n; i++

) flagdata[j]

[j+i]

= mindata;}}

}return flagdata[1]

[n];}}

;

剛開始是全25000個1的資料過不去,所以就加了乙個限定條件,但是後來還是91/92資料失敗

方法二(貪心)也是官方題解:

class

solution

}return result;}}

;

採用了貪心策略,時間複雜度是o(n),遍歷過程中用end符號記錄這一次可以跳的最遠距離,在沒有到達end之前,計算下一次可以遍歷的最遠距離

千萬別把問題想得太嚴重,太複雜!!!雖然是一道困難型別的題目,但是思路卻很簡單!!

LintCode 跳躍遊戲 I VS跳躍遊戲 II

陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...

LintCode Jump Game 跳躍遊戲

給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。樣例 a 2,3,1,1,4 返回 true.a 3,2,1,0,4 返回 false.注意 這個問題有兩個方法,乙個是貪心和 動態規劃。貪心方法時間複雜度為o...

跳躍遊戲二

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。你的目標是到達最後乙個下標,並且使用最少的跳躍次數。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3 1,1 4 到達最後乙個下標的最少跳躍次數為 22 2。先跳躍 11 1 ...