遞迴與動態規劃 跳躍遊戲

2021-08-06 06:26:18 字數 772 閱讀 7584

【題目】

給定陣列arr,arr[i] == k代表可以從位置i向右跳1~k個距離。比如,arr[2] == 3,代表從位置2可以跳到位置3、位置4或者位置5。如果從位置0出發,返回最少跳幾次能跳到arr最後的位置上。

【舉例】

arr = [3, 2, 3, 1, 1, 4]

arr[0] = 3,選擇跳到位置2;arr[2] == 3,可以跳到最後的位置,所以返回2。

【基本思路】

1.使用3個變數,jump,cur,next。jump表示目前跳了多少次,cur表示跳了jump下後能到達的最遠距離,next表示如果再跳一次能到達的最遠位置。初始時三個變數都為0。

2.從左到右依次遍歷陣列arr,假設遍歷到位置i,分析如下:

下面是使用python3.5實現的**。

#跳躍遊戲

defjump

(arr):

if arr == none

or len(arr) == 0:

return

0 jump = 0

cur = 0

next = 0

for i in range(len(arr)):

if cur < i:

jump += 1

cur = next

next = max(i+arr[i], next)

return jump

動態規劃之跳躍遊戲

跳躍遊戲 給出乙個非負整數陣列,你最初定位在陣列的第乙個位置,陣列中的每個元素代表你在那個位置可以跳躍的最大長度,判斷你是否能到達陣列的最後乙個位置。注意事項 陣列a的長度不超過5000,每個元素的大小不超過5000 樣例 1 輸入 2,3,1,1,4 輸出 true 樣例 2 輸入 3,2,1,0...

跳躍遊戲一(動態規劃)

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後乙個下標。例如 a 2,3,1,1,4 a 2,3 1,1 4 能夠跳躍到最後乙個下標,輸出true a 3,2,1,0,4 a 3,2 1,0 4 不能跳躍到...

跳躍遊戲(貪心和動態規劃)

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