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)
|
Output
[(5, 3), (4, 4)]
Complexity : O(n*n)