数组中出现次数超过一半的数字 牛客网 剑指Offer

mac2022-06-30  148

数组中出现次数超过一半的数字 牛客网 剑指Offer

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 class Solution: #run:32ms memorry:5624k def MoreThanHalfNum_Solution(self,numbers): lenN = len(numbers) if numbers == None or lenN <= 0: return 0 num = numbers[0] times =1 for i in range(1,lenN): if times == 0: num = numbers[i] elif numbers[i] == num: times +=1 else: times -=1 count = 0 for i in range(lenN): if numbers[i] == num: count +=1 if count > lenN/2: return num return 0

 

转载于:https://www.cnblogs.com/vercont/p/10210377.html

最新回复(0)