日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1406. 石子游戏 III(DP)

發布時間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1406. 石子游戏 III(DP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

Alice 和 Bob 用幾堆石子在做游戲。幾堆石子排成一行,每堆石子都對應一個得分,由數組 stoneValue 給出。

Alice 和 Bob 輪流取石子,Alice 總是先開始。在每個玩家的回合中,該玩家可以拿走剩下石子中的的前 1、2 或 3 堆石子 。比賽一直持續到所有石頭都被拿走。

每個玩家的最終得分為他所拿到的每堆石子的對應得分之和。每個玩家的初始分數都是 0 。比賽的目標是決出最高分,得分最高的選手將會贏得比賽,比賽也可能會出現平局。

假設 Alice 和 Bob 都采取 最優策略 。如果 Alice 贏了就返回 “Alice” ,Bob 贏了就返回 “Bob”,平局(分數相同)返回 “Tie” 。

示例 1: 輸入:values = [1,2,3,7] 輸出:"Bob" 解釋:Alice 總是會輸,她的最佳選擇是拿走前三堆,得分變成 6 。但是 Bob 的得分為 7,Bob 獲勝。示例 2: 輸入:values = [1,2,3,-9] 輸出:"Alice" 解釋:Alice 要想獲勝就必須在第一個回合拿走前三堆石子,給 Bob 留下負分。 如果 Alice 只拿走第一堆,那么她的得分為 1,接下來 Bob 拿走第二、三堆,得分為 5 。 之后 Alice 只能拿到分數 -9 的石子堆,輸掉比賽。 如果 Alice 拿走前兩堆,那么她的得分為 3,接下來 Bob 拿走第三堆,得分為 3 。 之后 Alice 只能拿到分數 -9 的石子堆,同樣會輸掉比賽。 注意,他們都應該采取 最優策略 ,所以在這里 Alice 將選擇能夠使她獲勝的方案。示例 3: 輸入:values = [1,2,3,6] 輸出:"Tie" 解釋:Alice 無法贏得比賽。如果她決定選擇前三堆,她可以以平局結束比賽,否則她就會輸。示例 4: 輸入:values = [1,2,3,-1,-2,-3,7] 輸出:"Alice"示例 5: 輸入:values = [-1,-2,-3] 輸出:"Tie"提示: 1 <= values.length <= 50000 -1000 <= values[i] <= 1000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/stone-game-iii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

類似題目:LeetCode 877. 石子游戲(DP)

  • 參考大佬題解
  • 不管怎么取,第0個是Alice的,反向往前推
  • dp[i] 表示取到 i 號石頭時的最大得分
  • sum 表示【i,…end】的和
  • dp[i] 是取1個石頭過來的,前面別人取的最大值是dp[i+1],我在位置 i 取的值就是 sum - dp[i+1]
  • dp[i] 是取2個石頭過來的,前面別人取的最大值是dp[i+2],我在位置 i 取的值就是 sum - dp[i+2]
  • dp[i] 是取3個石頭過來的,前面別人取的最大值是dp[i+3],我在位置 i 取的值就是 sum - dp[i+3]
  • 取上面3種情況的max
class Solution { public:string stoneGameIII(vector<int>& stoneValue) {int i, n = stoneValue.size(), sum = 0;vector<int> dp(n+3,0);for(i = n-1; i >= 0; --i){sum += stoneValue[i];dp[i] = max(max(sum-dp[i+3], sum-dp[i+2]),sum-dp[i+1]);}if(dp[0] > sum-dp[0])return "Alice";else if(dp[0] < sum-dp[0])return "Bob";return "Tie";} };

624 ms 132.3 MB

總結

以上是生活随笔為你收集整理的LeetCode 1406. 石子游戏 III(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。