最直观办法就是排序,然后找中间那个数。
要求时间复杂度为O(N)的时候,利用出现了n/2+1次的特性,把这个数和其他数一一抵消,剩下的就是要求的m。利用一个栈结构
def kay(lst):
stack=[]
for i in lst:
if not stack or stack[-1]==i:
stack.append(i)
else:
stack.pop()
return stack.pop()