leetcode-1686石子游戏
题目链接
1686. 石子游戏 VI - 力扣(LeetCode)
解题思路
选取石头的最优化的策略是,让自己的分最高,同时让对手失分最多。因此,我们创建一个数组vals,其中vals[i] = (aliceValues[i] + bobValues[i],i),表示第i个石头的总价值和编号,然后我们对vals按照总价值降序排序。
然后我们按照vals的顺序,让Alice和Bob交替选取石头。Alice选取vals中的偶数位置的石头,Bob选取vals中奇数位置的石头。最后比较Alice和Bob的得分,返回对应的结果。
解题代码
class Solution:
def stoneGameVI(self, aliceValues: List[int], bobValues: List[int]) -> int:
vals = [(a + b, i) for i, (a, b) in enumerate(zip(aliceValues, bobValues))]
vals.sort(reverse=True)
a = sum(aliceValues[i] for _, i in vals[::2])
b = sum(bobValues[i] for _, i in vals[1::2])
if a > b:
return 1
if a < b:
return -1
return 0
原文地址:https://blog.csdn.net/weixin_53908842/article/details/135991115
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/226933.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/226933.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!