Elemento mayoritario: un elemento mayoritario en una array A[] de tamaño n es un elemento que aparece más de n/2 veces (y, por lo tanto, hay como máximo uno de esos elementos).
Escriba una función que tome una array y emita el elemento mayoritario (si existe); de lo contrario, imprima NINGUNO de la siguiente manera:
Ejemplos:
Input : 3 3 4 2 4 4 2 4 4 Output : 4 Input : 3 3 4 2 4 4 2 4 Output : NONE
Tenemos una solución existente para este problema, consulte el enlace Elemento mayoritario . Podemos resolver este problema rápidamente en Python usando la función Counter (iterable) . El enfoque es simple,
- Convierte una lista dada de elementos en un diccionario usando el método Counter() , teniendo elementos como claves y sus frecuencias como valor.
- Ahora recorra el diccionario completo y verifique el elemento cuya frecuencia sigue la condición mayor que (n/2) donde n es el tamaño de la lista. Ese elemento será el elemento mayoritario.
# Function to find majority element from collections import Counter def majority(arr): # convert array into dictionary freqDict = Counter(arr) # traverse dictionary and check majority element size = len(arr) for (key,val) in freqDict.items(): if (val > (size/2)): print(key) return print('None') # Driver program if __name__ == "__main__": arr = [3,3,4,2,4,4,2,4,4] majority(arr)
Producción:
4
Publicación traducida automáticamente
Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA