Question:codility Lesson8 Dominator
My Answer:
def solution(A):
lenA = len(A)
candidate = -1
candidatecnt = 0
index = -1
for i in range(lenA):
if candidatecnt == 0:
candidate = A[i]
candidatecnt += 1
index = i
else:
if A[i] == candidate:
candidatecnt += 1
else:
candidatecnt -= 1
if len([ele for ele in A if ele == candidate]) <= lenA // 2:
return -1
else:
return index

本文介绍了一种算法,用于从给定数组中找到主导元素(即出现次数超过数组一半长度的元素)。通过遍历数组并使用计数器跟踪潜在候选元素的方式实现。若找到主导元素,则返回其索引;若不存在,则返回-1。
354

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



