Dados dos arreglos no ordenados de elementos distintos, la tarea es encontrar todos los pares de ambos arreglos cuya suma sea igual a x.
Ejemplos:
Input : arr1 = [-1, -2, 4, -6, 5, 7] arr2 = [6, 3, 4, 0] x = 8 Output : [(5, 3), (4, 4)] Input : arr1 = [1, 2, 4, 5, 7] arr2 = [5, 6, 3, 4, 8] x = 9 Output : [(1, 8), (4, 5), (5, 4)]
Tenemos una solución existente para este problema, consulte Dadas dos arrays no ordenadas, encuentre todos los pares cuya suma sea x enlace. Podemos resolver este problema rápidamente en python usando List comprehension . El enfoque es muy simple, consideraremos todos aquellos pares para los cuales si k está en arr2 entonces xk debería estar en arr1 , entonces el par será (xk,k).
Implementación:
Python3
# Function to find all pairs whose sum is x in # two arrays def allPairs(arr1,arr2,x): # finds all pairs in two arrays # whose sum is x print ([(x-k,k) for k in arr2 if (x-k) in arr1]) # Driver program if __name__ == "__main__": arr1 = [-1, -2, 4, -6, 5, 7] arr2 = [6, 3, 4, 0] x = 8 allPairs(arr1,arr2,x)
Producción
[(5, 3), (4, 4)]
Complejidad : O(n*n)
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