alice 和 bob 再次設計了一款新的石子遊戲。現有一行 n 個石子,每個石子都有乙個關聯的數字表示它的價值。給你乙個整數陣列stones
,其中stones[i]
是第i
個石子的價值。
alice 和 bob 輪流進行自己的回合,alice先手。每一回合,玩家需要從stones
中移除任一石子。
假設兩位玩家均採用最佳決策。如果 alice 獲勝,返回true
;如果 bob 獲勝,返回false
。
示例 1:
輸入:stones = [2,1]
輸出:true
解釋:遊戲進行如下:
- 回合 1:alice 可以移除任意乙個石子。
- 回合 2:bob 移除剩下的石子。
已移除的石子的值總和為 1 + 2 = 3 且可以被 3 整除。因此,bob 輸,alice 獲勝。
示例 2:
輸入:stones = [2]
輸出:false
解釋:alice 會移除唯一乙個石子,已移除石子的值總和為 2 。
由於所有石子都已移除,且值總和無法被 3 整除,bob 獲勝。
示例 3:
輸入:stones = [5,1,2,4,3]
輸出:false
解釋:bob 總會獲勝。其中一種可能的遊戲進行方式如下:
- 回合 1:alice 可以移除值為 1 的第 2 個石子。已移除石子值總和為 1 。
- 回合 2:bob 可以移除值為 3 的第 5 個石子。已移除石子值總和為 = 1 + 3 = 4 。
- 回合 3:alices 可以移除值為 4 的第 4 個石子。已移除石子值總和為 = 1 + 3 + 4 = 8 。
- 回合 4:bob 可以移除值為 2 的第 3 個石子。已移除石子值總和為 = 1 + 3 + 4 + 2 = 10.
- 回合 5:alice 可以移除值為 5 的第 1 個石子。已移除石子值總和為 = 1 + 3 + 4 + 2 + 5 = 15.
alice 輸掉遊戲,因為已移除石子值總和(15)可以被 3 整除,bob 獲勝。
language: ****
func stonegameix(stones int) bool else if val == 1 else
}if cnt0 % 2== 0
return cnt1 - cnt2 > 2 || cnt2 - cnt1 > 2
}
877 石子遊戲
題目描述 亞歷克斯和李用幾堆石子在做遊戲。偶數堆石子排成一行,每堆都有正整數顆石子 piles i 遊戲以誰手中的石子最多來決出勝負。石子的總數是奇數,所以沒有平局。亞歷克斯和李輪流進行,亞歷克斯先開始。每回合,玩家從行的開始或結束處取走整堆石頭。這種情況一直持續到沒有更多的石子堆為止,此時手中石子...
LeetCode877 石子遊戲
亞歷克斯和李用幾堆石子在做遊戲。偶數堆石子排成一行,每堆都有正整數顆石子 piles i 遊戲以誰手中的石子最多來決出勝負。石子的總數是奇數,所以沒有平局。亞歷克斯和李輪流進行,亞歷克斯先開始。每回合,玩家從行的開始或結束處取走整堆石頭。這種情況一直持續到沒有更多的石子堆為止,此時手中石子最多的玩家...
LeetCode 877 石子遊戲
usr bin python3 coding utf 8 time 2019 3 16 author xfli the file.這是乙個數學問題,要注意的有兩點,第一,有偶數堆,第二,總數為奇數,不存在平局。所以這樣想,如果有2堆,亞歷克斯選乙個多的,肯定贏了,如果有4堆,平分兩堆,亞歷克斯每兩堆...