Para probar la seguridad de la oferta - números aparecen repetidamente en la matriz

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

 

Publicado 82 artículos originales · ganado elogios 2 · Vistas 4361

Supongo que te gusta

Origin blog.csdn.net/qq_22498427/article/details/104761284
Recomendado
Clasificación