题目:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
众数——众数(Mode)是统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平(众数可以不存在或多于一个)。 修正定义:是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用 M 表示。 理性理解:简单的说,就是一组数据中占比例最多的那个数。
(来自百度)
我的解法:利用字典,计算每一个数字出现的次数,出现次数最大的那个就是要求的众数,但是根据题目,次数还要大于列表长度的一半,所以有了下面的方法:
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
dict={x:0 for x in nums}
for x in nums:
dict[x]+=1
for x in dict.key():
if dict[x]>len(nums)//2:
return x
这种方法我借鉴了昨天的字典法,利用字典来计数。利用了额外字典空间&#x