Question:codility Lesson8 EquiLeader
My Answer:
def solution(A):
lenA = len(A)
candidata = -1
cnt = 0
for i in range(lenA):
if cnt == 0:
candidata = A[i]
cnt += 1
else:
if A[i] == candidate:
cnt += 1
else:
cnt -= 1
concnt = 0
for ele in A:
if ele == candidate:
concnt += 1
if concnt < lenA // 2:
return 0
res = 0
curcnt = 0
for i in range(lenA):
if A[i] == candidate:
curcnt += 1
if curcnt > (i + 1)//2 and concnt - curcnt > (lenA - i - 1)//2:
res += 1
return res

本文解析了 Codility Lesson 8 中的 EquiLeader 问题,并提供了一个 Python 实现方案。该方案首先确定数组中的主导元素,然后遍历数组计算主导元素在各个子数组中出现的次数,以确定平衡领导者的数量。
295

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



