题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
1 class Solution: 2 def MoreThanHalfNum_Solution(self, numbers): 3 # write code here 4 if len(numbers)==1: 5 return numbers[0] 6 nums = sorted(numbers) 7 len_half = len(nums)//2 8 count = 1 9 i = 0 10 while i < len(nums)-1: 11 if nums[i]==nums[i+1]: 12 count+=1 13 if len_half<count: 14 return nums[i] 15 if nums[i]!=nums[i+1]: 16 count=1 17 i+=1 18 return 0