有 T1 和 T2 队在玩游戏。两队都有 N 名球员。T1 队球员的力量用数组表示,类似地 T2 队球员。
游戏规则如下:
1.只有N场战斗。
2.任何球队的球员都不能上场两次
3.(P1 + P2)%N P1代表T1的实力。同理P2
T2 知道 T1 的命令 正在派他们的玩家玩 T2 希望在每场战斗中获得最低分数的游戏。
你的任务是确定 T2 发送玩家的顺序,以便他们获得每场战斗的最低分数
你需要打印每一轮和T2其他玩家的分数。
N=3
T1=[1,2,3]
T2=[2,0,1]
Output:[0,0,0]
N=4
T1=[0,1,2,1]
T2=[3,2,1,1]
output:[1,0,0,2]
解释案例 1 N=3: [(1+2)%3,(2+1)%3,(3+0)%3]
这个问题的最佳解决方案是什么?
一种方法是用 T1 逐一检查。
最佳答案
这不是一个完整的答案,但这是我的想法。有更多有趣的例子可以帮助发展这个想法。
对数组进行排序,一个降序,一个升序:
N=4
T1=[0,1,2,1]
T2=[3,2,1,1]
0 1 1 2
3 2 1 1
现在使用指针“移动”对齐方式,同时为当前的升序目标余数维护一个变量。
Target remainder 0
0 1 1 2
3 2 1 1
^
useless, shift pointer right
0 1 1 2
3 2 1 1
^
useless, shift pointer right
0 1 1 2
3 2 1 1
关于algorithm - 确定每场比赛的最低分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65378009/