题目要求:思路是计数,所以首先想到字典就是记录数组中每个元素出现的次数。当一个元素出现超过数组长度的一半时,返回这个数字。因为众数的定义是出现次数大于数组长度的一半,所以一个数组中最多只有一个众数。核心代码:#定义一个字典mydict={}#n是数组长度的一半n=len(nums)//2#遍历数组foriinrange(len(nums)):#如果元素不是在字典中,把它加入到字典中,并把它的值赋给1ifnums[i]notinmydict:mydict[nums[i]]=1#如果元素已经存在,就把它的值加1else:mydict[nums[i]]+=1#判断出现次数是否超过数组长度的一半ifmydict[nums[i]]>n:returnnums[i]添加特殊条件后,比如数组的长度为0或1,为0则返回None,为1则直接返回数组的第[0]个元素。完整代码:classSolution(object):defmajorityElement(self,nums):""":typenums:List[int]:rtype:int"""iflen(nums)==0:returnNoneiflen(nums)==1:returnnums[0]mydict={}n=len(nums)//2foriinrange(len(nums)):ifnums[i]notinmydict:mydict[nums[i]]=1else:mydict[nums[i]]+=1ifmydict[nums[i]]>n:返回nums[i]
