LeetCode 1563. 石子游戏 V(DP)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1563. 石子游戏 V(DP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 區間DP
1. 題目
幾塊石子 排成一行 ,每塊石子都有一個關聯值,關聯值為整數,由數組 stoneValue 給出。
游戲中的每一輪:
Alice 會將這行石子分成兩個 非空行(即,左側行和右側行);
Bob 負責計算每一行的值,即此行中所有石子的值的總和。
Bob 會丟棄值最大的行,Alice 的得分為剩下那行的值(每輪累加)。
如果兩行的值相等,Bob 讓 Alice 決定丟棄哪一行。下一輪從剩下的那一行開始。
只 剩下一塊石子 時,游戲結束。Alice 的分數最初為 0 。
返回 Alice 能夠獲得的最大分數 。
示例 1: 輸入:stoneValue = [6,2,3,4,5,5] 輸出:18 解釋:在第一輪中,Alice 將行劃分為 [6,2,3],[4,5,5] 。 左行的值是 11 ,右行的值是 14 。 Bob 丟棄了右行,Alice 的分數現在是 11 。 在第二輪中,Alice 將行分成 [6],[2,3] 。 這一次 Bob 扔掉了左行,Alice 的分數變成了 16(11 + 5)。 最后一輪 Alice 只能將行分成 [2],[3] 。 Bob 扔掉右行,Alice 的分數現在是 18(16 + 2)。 游戲結束,因為這行只剩下一塊石頭了。示例 2: 輸入:stoneValue = [7,7,7,7,7,7,7] 輸出:28示例 3: 輸入:stoneValue = [4] 輸出:0提示: 1 <= stoneValue.length <= 500 1 <= stoneValue[i] <= 10^6來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/stone-game-v
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 區間DP
時間復雜度O(n3) ,有點高,需要優化
- dp[l][r] 表示區間內可以得到的最高分,區間從小往大
- 區間增加了,枚舉中間分隔點
- 不使用 vector,過了
1708 ms 10.6 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1563. 石子游戏 V(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1007. 行相等的最
- 下一篇: LeetCode DD-2020006.