题目:
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
题意:
给定一个数组,找到它的主元素,即出现次数超过n/2的数。
假定数组非空且数组存在主元素。
方法一:性能66ms
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
b = {}
for eachnum in nums:
if eachnum not in b:
b[eachnum] = 1
else:
b[eachnum] += 1
for eachnum in b:
if b[eachnum] == max(b.values()):
return eachnum
return 0
方法二:性能49ms
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sorted(nums)[(len(nums))/2]