面试题 17.10. 主要元素
数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。
示例 1:
输入:[1,2,5,9,5,9,5,5,5]
输出:5
示例 2:
输入:[3,2]
输出:-1
# 占比超过一半的元素排序后肯定在中间
# 先排序,然后循环查看中间元素的个数是否超过一半
def majorityElement(self, nums: List[int]) -> int:
nums.sort()
length=len(nums)
mid=length//2
count=0
for i in range(length):
if nums[i]==nums[mid]:
count+=1
return nums[mid] if count>mid else -1