摩尔投票法
每次从数组中选择两个不相等的元素进行相互抵消(删除),最后剩下的一个元素或几个相同的元素就是出现次数大于n/2的元素
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
ans = nums[0]
count = 1
max_len = len(nums) / 2
for i in range(1,len(nums)):
# print(i)
if nums[i] == ans:
count += 1
if count > max_len:
return ans
else:
count -= 1
if count == 0:
ans = nums[i]
count = 1
return ans