本题让我们找到数组中的majority元素,该元素是在数组中出现了超过n/2次的数。n是数组长度。并且leetcode允许我们假定数组不是空的,并且这样的元素肯定存在。这样省去了很多特殊输入的问题。该题很简单,查找就用hash表就可以了,在python中也就是dict(),key是num,value是出现的次数。还是要注意一种特殊就是数组长度为1时,此时直接返回该值即可。
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
temp = dict()
if len(nums) == 1:
return nums[0]
for num in nums:
if temp.has_key(num):
if temp[num] >= len(nums)/2:
return num
else:
temp[num] += 1
else:
temp[num] = 1