LeetCode 题解工作台
最大化游戏分数的最小值
给你一个长度为 n 的数组 points 和一个整数 m 。同时有另外一个长度为 n 的数组 gameScore ,其中 gameScore[i] 表示第 i 个游戏得到的分数。一开始对于所有的 i 都有 gameScore[i] == 0 。 你开始于下标 -1 处,该下标在数组以外(在下标 0 …
3
题型
0
代码语言
3
相关题
当前训练重点
困难 · 二分·搜索·答案·空间
Interview AiBoxInterview AiBox 实时 AI 助手,陪你讲清 二分·搜索·答案·空间 题型思路
题目描述
给你一个长度为 n 的数组 points 和一个整数 m 。同时有另外一个长度为 n 的数组 gameScore ,其中 gameScore[i] 表示第 i 个游戏得到的分数。一开始对于所有的 i 都有 gameScore[i] == 0 。
你开始于下标 -1 处,该下标在数组以外(在下标 0 前面一个位置)。你可以执行 至多 m 次操作,每一次操作中,你可以执行以下两个操作之一:
- 将下标增加 1 ,同时将
points[i]添加到gameScore[i]。 - 将下标减少 1 ,同时将
points[i]添加到gameScore[i]。
注意,在第一次移动以后,下标必须始终保持在数组范围以内。
请你返回 至多 m 次操作以后,gameScore 里面最小值 最大 为多少。
示例 1:
输入:points = [2,4], m = 3
输出:4
解释:
一开始,下标 i = -1 且 gameScore = [0, 0].
| 移动 | 下标 | gameScore |
|---|---|---|
增加 i |
0 | [2, 0] |
增加 i |
1 | [2, 4] |
减少 i |
0 | [4, 4] |
gameScore 中的最小值为 4 ,这是所有方案中可以得到的最大值,所以返回 4 。
示例 2:
输入:points = [1,2,3], m = 5
输出:2
解释:
一开始,下标 i = -1 且 gameScore = [0, 0, 0] 。
| 移动 | 下标 | gameScore |
|---|---|---|
增加 i |
0 | [1, 0, 0] |
增加 i |
1 | [1, 2, 0] |
减少 i |
0 | [2, 2, 0] |
增加 i |
1 | [2, 4, 0] |
增加 i |
2 | [2, 4, 3] |
gameScore 中的最小值为 2 ,这是所有方案中可以得到的最大值,所以返回 2 。
提示:
2 <= n == points.length <= 5 * 1041 <= points[i] <= 1061 <= m <= 109
解题思路
方法一
复杂度分析
| 指标 | 值 |
|---|---|
| 时间 | Depends on the final approach |
| 空间 | Depends on the final approach |
面试官常问的追问
外企场景- question_mark
Check if the candidate values for the minimum score are being correctly bounded and tested using binary search.
- question_mark
Ensure that the greedy approach for distributing moves follows a clear strategy and optimizes the score efficiently.
- question_mark
The solution must demonstrate efficient handling of the array and move distribution, considering large inputs.
常见陷阱
外企场景- error
Misapplying binary search or failing to adjust the bounds of the search space correctly.
- error
Improper handling of move distribution, leading to suboptimal results or exceeding the allowed m moves.
- error
Not accounting for edge cases where the minimum score may be difficult to achieve with limited moves.
进阶变体
外企场景- arrow_right_alt
Modifying the gameScore array with different constraints on move distribution.
- arrow_right_alt
Exploring variations where some elements in points are not allowed to be changed or are capped at certain values.
- arrow_right_alt
Changing the number of moves allowed (m) to test how the solution scales with different move limits.