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。