Tenemos n arreglos de cualquier tamaño que pueden tener elementos comunes, necesitamos combinar todos estos arreglos de tal manera que cada elemento aparezca solo una vez y los elementos estén ordenados. Ejemplos:
Input : arr = [[1, 2, 2, 4, 3, 6], [5, 1, 3, 4], [9, 5, 7, 1], [2, 4, 1, 3]] Output : [1, 2, 3, 4, 5, 6, 7, 9]
Una solución simple para este problema es crear un hash vacío y recorrer cada array una por una, este hash contiene la frecuencia de cada elemento en la lista de arrays. Ahora recorra el hash desde el inicio e imprima cada índice que tenga un valor distinto de cero. Aquí resolvemos este problema en python muy rápidamente usando las propiedades de la estructura de datos Set() y el método Update() en python.
¿Cómo funciona el método Update() para set?
anySet.update(iterable) , este método une el conjunto llamado anySet con cualquier iterable dado y no devuelve ninguna copia superficial del conjunto como el método union() , actualiza el resultado en un conjunto de prefijos, es decir; cualquier conjunto .
Implementación:
Python3
# Function to combine n arrays def combineAll(input): # cast first array as set and assign it # to variable named as result result = set(input[0]) # now traverse remaining list of arrays # and take it's update with result variable for array in input[1:]: result.update(array) return list(result) # Driver program if __name__ == "__main__": input = [[1, 2, 2, 4, 3, 6], [5, 1, 3, 4], [9, 5, 7, 1], [2, 4, 1, 3]] print (combineAll(input))
[1, 2, 3, 4, 5, 6, 7, 9]
Este artículo es una contribución de Shashank Mishra (Gullu) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA