【LeetCode】55. 跳躍遊戲 (動態規劃)
題目描述
給定一個非負整數陣列,你最初位於陣列的第一個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後一個位置。
示例 1:
輸入: [2,3,1,1,4]
輸出: true
解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後一個位置。
示例 2:
輸入: [3,2,1,0,4]
輸出: false
解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後一個位置。
解題思路
逆向思維,這題說的是從前往後跳的,我們也可以從後往前來推斷,從陣列的最後第二位開始計算,如果jump能跳到最後一位,就需要大於一,如果小於一的話,就需要jump加步數,並向前判斷。如果最後jump等於一,說明可以跳完。
編寫程式碼
func canJump(nums []int) bool {
jump := 1
length := len(nums)
if length <= 0 {
return false
}
if length == 1 {
return true
}
if nums[0] == 0 {
return false
}
for length = length - 2; length >= 0; length-- {
if nums[length] >= jump || nums[length] == 0 {
jump = 1
} else {
jump++
}
}
if jump == 1 {
return true
} else {
return false
}
}
相關文章
- LeetCode 55. 跳躍遊戲 ( 回溯 dp 貪心LeetCode遊戲
- 貪心——55. 跳躍遊戲 && 45.跳躍遊戲II遊戲
- [Leetcode]44.跳躍遊戲Ⅰ&&45.跳躍遊戲ⅡLeetCode遊戲
- leetcode 45. 跳躍遊戲 IILeetCode遊戲
- [leetcode] 動態規劃(Ⅰ)LeetCode動態規劃
- LeetCode 45跳躍遊戲&46全排列LeetCode遊戲
- [leetcode 1235] [動態規劃]LeetCode動態規劃
- 跳躍遊戲遊戲
- leetcode題解(動態規劃)LeetCode動態規劃
- leetcode總結——動態規劃LeetCode動態規劃
- 程式碼隨想錄演算法訓練營day32 | leetcode 122. 買賣股票的最佳時機 II、55. 跳躍遊戲、45. 跳躍遊戲 II演算法LeetCode遊戲
- leetcode-動態規劃總結LeetCode動態規劃
- leetcode:跳躍遊戲II(java貪心演算法)LeetCode遊戲Java演算法
- Leetcode 編輯距離(動態規劃)LeetCode動態規劃
- LeetCode 動態規劃 House Robber 習題LeetCode動態規劃
- [LeetCode] 動態規劃題型總結LeetCode動態規劃
- 【leetcode】741 摘櫻桃(動態規劃)LeetCode動態規劃
- 0055-跳躍遊戲遊戲
- LeetCode:動態規劃+貪心題目整理LeetCode動態規劃
- LeetCode 分割回文串II(動態規劃)LeetCode動態規劃
- LeetCode入門指南 之 動態規劃思想LeetCode動態規劃
- LeetCode 343. 整數拆分--動態規劃LeetCode動態規劃
- 跳躍遊戲精細化遊戲
- Leetcode 題解演算法之動態規劃LeetCode演算法動態規劃
- 程式碼隨想錄演算法訓練營第三十二天 | 122.買賣股票的最佳時機 55.跳躍遊戲 45.跳躍遊戲II演算法遊戲
- 55-jump Game 跳躍遊戲GAM遊戲
- 動態規劃動態規劃
- [leetcode初級演算法]動態規劃總結LeetCode演算法動態規劃
- [LeetCode 中等 動態規劃 ]221. 最大正方形LeetCode動態規劃
- 2024.9.6 leetcode 70 爬樓梯 (雜湊表/動態規劃)LeetCode動態規劃
- Leetcode 題解系列 -- 股票的最大利潤(動態規劃)LeetCode動態規劃
- 動態規劃法動態規劃
- 模板 - 動態規劃動態規劃
- 動態規劃初步動態規劃
- 動態規劃分析動態規劃
- 動態規劃(DP)動態規劃
- 奔跑、跳躍、攀爬,遊戲基礎動作的趣味設計遊戲
- LeetCode中動態規劃題解合集(根據難易程度))LeetCode動態規劃