LeetCode 2212. 射箭比赛中的最大得分(状态枚举)
文章目錄
- 1. 題目
- 2. 解題
1. 題目
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:
示例 2:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/maximum-points-in-an-archery-competition
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 用 12位的 int 表示 bob 能贏下來的位置
- 分別檢查需要的 箭的數量是否足夠,取出得分最大的狀態即可
52 ms 9.6 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 2212. 射箭比赛中的最大得分(状态枚举)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 2120. 执行所有后
- 下一篇: Java 给编译器看的注释--Annot