LeetCode 1340. 跳跃游戏 V(DP)
1. 題目
給你一個整數(shù)數(shù)組 arr 和一個整數(shù) d 。每一步你可以從下標(biāo) i 跳到:
- i + x ,其中 i + x < arr.length 且 0 < x <= d 。
- i - x ,其中 i - x >= 0 且 0 < x <= d 。
除此以外,你從下標(biāo) i 跳到下標(biāo) j 需要滿足:arr[i] > arr[j] 且 arr[i] > arr[k] ,其中下標(biāo) k 是所有 i 到 j 之間的數(shù)字(更正式的,min(i, j) < k < max(i, j))。
你可以選擇數(shù)組的任意下標(biāo)開始跳躍。請你返回你 最多 可以訪問多少個下標(biāo)。
請注意,任何時刻你都不能跳到數(shù)組的外面。
示例 1:
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/jump-game-v
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. DP解題
相關(guān)題目:
LeetCode 55. 跳躍游戲(貪心)
LeetCode 45. 跳躍游戲 II(貪心/BFS,難)
LeetCode 1306. 跳躍游戲 III(廣度優(yōu)先搜索BFS)
LeetCode 1345. 跳躍游戲 IV(BFS)
LeetCode LCP 09. 最小跳躍次數(shù)
- 首先根據(jù)題意,只能往低了跳,且中間不能遇到比我高的
- 用 dp[i] 表示從 i 開始跳,最多可以跳的臺階數(shù)
- 那么 dp 需要從低的開始往高的計算,所以要先排序
- 狀態(tài)轉(zhuǎn)移方程 dp[i]=max(dp[i],1+dp[j])dp[i] = max(dp[i], 1+dp[j])dp[i]=max(dp[i],1+dp[j]), 從 i 跳到所有可能的 j
總結(jié)
以上是生活随笔為你收集整理的LeetCode 1340. 跳跃游戏 V(DP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1275. 找出井字棋
- 下一篇: LeetCode 402. 移掉K位数字