浙江广发建设有限公司网站wordpress修改主题文件
浙江广发建设有限公司网站,wordpress修改主题文件,网站如何做双链路,wordpress 分页 插件下载文章目录 题目描述问题分析程序代码 题目描述 原题链接 Alice 和 Bob 轮流玩一个游戏#xff0c;Alice 先手。
一堆石子里总共有n个石子#xff0c;轮到某个玩家时#xff0c;他可以 移出 一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有 不一样的的评判标准 。双… 文章目录 题目描述问题分析程序代码 题目描述 原题链接 Alice 和 Bob 轮流玩一个游戏Alice 先手。
一堆石子里总共有n个石子轮到某个玩家时他可以 移出 一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有 不一样的的评判标准 。双方都知道对方的评判标准。
给你两个长度为n的整数数组aliceValues和bobValues。aliceValues[i]和bobValues[i] 分别表示Alice和Bob认为第i个石子的价值。
所有石子都被取完后得分较高的人为胜者。如果两个玩家得分相同那么为平局。两位玩家都会采用 最优策略 进行游戏。
请你推断游戏的结果用如下的方式表示
如果 Alice 赢返回 1 。如果 Bob 赢返回 -1 。如果游戏平局返回 0 。
问题分析
假设 Alice 选择石子iBob 选择石子j则 Alice 与 Bob 之间的石子价值差为aliceValues[i] - bobValues[j]若 Alice 选择石子jBob 选择石子i则 Alice 与 Bob 之间的石子价值差为aliceValues[j] - bobValues[i]
对比两种方案的优劣可以对这两种方案的价值做差即aliceValues[i] - bobValues[j] - (aliceValues[j] - bobValues[i]) (aliceValues[i] bobValues[i]) - (aliceValues[j] bobValues[j])。即 Alice 和 Bob 采用的最优策略都是先选择aliceValues[i] bobValues[i]值最大的。
因此对aliceValues[i] bobValues[i]值从大到小进行排序 Alice 和 Bob 依次选择就是最终的结果。
程序代码
func stoneGameVI(aliceValues []int, bobValues []int) int {n : len(aliceValues)choices : make([][]int, n)for i : 0; i n; i {choices[i] []int{aliceValues[i] bobValues[i], aliceValues[i]}}sort.Slice(choices, func(i, j int) bool {return choices[i][0] choices[j][0]})aSum, bSum : 0, 0for i : 0; i n; i {if i % 2 0 {aSum choices[i][1]} else {bSum choices[i][0] - choices[i][1]}}if aSum bSum {return 1} else if aSum bSum {return 0} else {return -1}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86502.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!