classSolution(object):defmajorityElement(self, nums):iflen(nums)==1:return nums[0]
d ={}for num in nums:if num in d:
d[num]+=1if d[num]>len(nums)//2:return num
else:
d[num]=1
方法二:投票法
classSolution(object):### 题目已假定:数组中总是存在多数元素,则众数总是存在defmajorityElement(self, nums):"""
:type nums: List[int]
:rtype: int
"""# 初始化vote为0,最后vote必为正整数(在此题的条件下)
vote =0for num in nums:if vote ==0:# 当且仅当vote为0时,才更新众数mode为当前的数num
mode = num
if mode == num:
vote +=1else:
vote -=1# return mode### 变:防止数组中不总是存在多数元素,即不存在众数的情况。需要加入此验证代码
count =0for num in nums:if num == mode:
count +=1return mode if count >len(nums)//2else-1