跳到主要内容

1686.石子游戏VI

链接:1686.石子游戏VI
难度:Medium
标签:贪心、数组、数学、博弈、排序、堆(优先队列)
简介:所有石子都被取完后,得分较高的人为胜者。如果两个玩家得分相同,那么为平局。两位玩家都会采用 最优策略 进行游戏。

题解 1 - python

  • 编辑时间:2024-02-02
  • 执行用时:241ms
  • 内存消耗:27.69MB
  • 编程语言:python
  • 解法介绍:优先拿分数总和最大的。
class Solution:
def stoneGameVI(self, aliceValues: List[int], bobValues: List[int]) -> int:
values = sorted((av + bv, av, bv) for av, bv in zip(aliceValues, bobValues))
asum = sum(item[1] for item in values[-1::-2])
bsum = sum(item[2] for item in values[-2::-2])
if asum > bsum: return 1
if asum < bsum: return -1
return 0