Given two unsorted arrays of distinct elements, the task is to find all pairs from both arrays whose sum is equal to x.
Examples:
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)]
We have existing solution for this problem please refer Given two unsorted arrays, find all pairs whose sum is x link. We can solve this problem quickly in python using List comprehension. Approach is very simple, we will consider all those pairs for which if k lies in arr2 then x-k should lie in arr1, so pair will be (x-k,k).
Implementation:
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) |
[(5, 3), (4, 4)]
Complexity : O(n*n)