LeetCode 55 跳躍遊戲

2021-10-03 22:06:42 字數 737 閱讀 3914

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

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

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

示例

示例 1:

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

輸出: true

解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後乙個位置。

示例 2:

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

輸出: false

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

題解

唉一直做回溯做傻了,像這種回溯起來完全就是暴力方法,結果就是乙個n次方的複雜度,仔細想想回溯其實每乙個選擇都是乙個完全不同的狀態,但這類問題會有一些點可以通過不同方案過去,就自然而然去dp了,倒著走記錄能不能到達,一直往前更新。這樣複雜度是n方,發現還是不行,其實仔細觀察一下就會發現如果你能跳到x點,那麼x點左側的點你都能跳到,所以只要不斷更新能到的最右邊的位置,這個位置如果能夠包含終點就是可達。

具體實現:每個點檢查能到達的最右點,檢查下乙個點更新最右位置,如果最右位置在你當前更新點的左側,說明當前更新點實際已經不可達,那就沒必要再算了,因為已經走到頭了。

class

solution

return

true;}

};

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