面试题 17.10. 主要元素
数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = len(nums) #首先得到数组长度
unique = set(nums) #用set函数得到数组中不同元素的集合
half = int(n/2)
for i in unique: #遍历unique
if nums.count(i) > half: #如果nums中某个数大于出现次数大于一半,返回
return(i)
return(-1) #否则返回-1
排序法:
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
half = int(len(nums)/2)
tem_list = sorted(nums)
for i in range(half + 1):
if tem_list[i] == tem_list[i + half]:
return(tem_list[i])
return(-1)