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