1. 解题思路
这一题非常的直接,想要赢,就是要获取总得分的一半以上。
因此,我们只需要计算出序列的总得分,然后考察从头往下走第一个能够获取半数以上得分的位置即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def minimumLevels(self, possible: List[int]) -> int:
n = len(possible)
s = 2*sum(possible) - n
win = s // 2 + 1
score = 0
for i in range(n-1):
score = score + 1 if possible[i] == 1 else score-1
if score >= win:
return i+1
return -1
提交代码评测得到:耗时1842ms,占用内存20.4MB。
本文介绍了如何解决LeetCode问题3096,策略是确定最小升级次数,使得从序列中获取的得分超过总分的一半。作者给出了Python代码实现,包括时间复杂度和内存使用情况。

被折叠的 条评论
为什么被折叠?



