| English | 简体中文 |
2212. 射箭比赛中的最大得分
题目描述
Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下:
- Alice 先射
numArrows
支箭,然后 Bob 也射numArrows
支箭。 - 分数按下述规则计算:
- 箭靶有若干整数计分区域,范围从
0
到11
(含0
和11
)。 - 箭靶上每个区域都对应一个得分
k
(范围是0
到11
),Alice 和 Bob 分别在得分k
区域射中ak
和bk
支箭。如果ak >= bk
,那么 Alice 得k
分。如果ak < bk
,则 Bob 得k
分 - 如果
ak == bk == 0
,那么无人得到k
分。
- 箭靶有若干整数计分区域,范围从
例如,Alice 和 Bob 都向计分为
11
的区域射2
支箭,那么 Alice 得11
分。如果 Alice 向计分为11
的区域射0
支箭,但 Bob 向同一个区域射2
支箭,那么 Bob 得11
分。
给你整数 numArrows
和一个长度为 12
的整数数组 aliceArrows
,该数组表示 Alice 射中 0
到 11
每个计分区域的箭数量。现在,Bob 想要尽可能 最大化 他所能获得的总分。
返回数组 bobArrows
,该数组表示 Bob 射中 0
到 11
每个 计分区域的箭数量。且 bobArrows
的总和应当等于 numArrows
。
如果存在多种方法都可以使 Bob 获得最大总分,返回其中 任意一种 即可。
示例 1:
输入:numArrows = 9, aliceArrows = [1,1,0,1,0,0,2,1,0,1,2,0] 输出:[0,0,0,0,1,1,0,0,1,2,3,1] 解释:上表显示了比赛得分情况。 Bob 获得总分 4 + 5 + 8 + 9 + 10 + 11 = 47 。 可以证明 Bob 无法获得比 47 更高的分数。
示例 2:
输入:numArrows = 3, aliceArrows = [0,0,1,0,0,0,0,0,0,0,0,2] 输出:[0,0,0,0,0,0,0,0,1,1,1,0] 解释:上表显示了比赛得分情况。 Bob 获得总分 8 + 9 + 10 = 27 。 可以证明 Bob 无法获得比 27 更高的分数。
提示:
1 <= numArrows <= 105
aliceArrows.length == bobArrows.length == 12
0 <= aliceArrows[i], bobArrows[i] <= numArrows
sum(aliceArrows[i]) == numArrows