título Descripción
Hay un número de serie número que aparece más de la mitad de la longitud de la matriz, encontrar este número. Por ejemplo, una longitud de la matriz de entrada 9 {1,2,3,2,2,2,5,4,2}. Dado que el número 2 aparece cinco veces, más de la mitad de la longitud de la matriz en la matriz, la salida 2. Si hay 0 de salida.
pensamiento
Esto nada que decir, utilizando un diccionario para almacenar el número de elementos individuales como
# -*- coding:utf-8 -*-
import collections
class Solution:
def MoreThanHalfNum_Solution(self, numbers):
n = len(numbers)//2
nums = collections.defaultdict(lambda:0)
for num in numbers:
nums[num] += 1
values = nums.values()
maxi = max(values)
if maxi>n:
for key in nums.keys():
if nums[key] == maxi:
return key
else:
return 0