📌  相关文章
📜  Python List Comprehension 从两个数组中找到具有给定总和的对

📅  最后修改于: 2022-05-13 01:55:26.697000             🧑  作者: Mango

Python List Comprehension 从两个数组中找到具有给定总和的对

给定两个不同元素的未排序数组,任务是从两个数组中找到总和等于 x 的所有对。

例子:

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)]

对于这个问题,我们有现有的解决方案,请参考给定两个未排序的数组,找到总和为 x 链接的所有对。我们可以使用列表推导在Python中快速解决这个问题。方法非常简单,我们将考虑所有那些如果 k 位于 arr2xk 应位于 arr1的对,因此 pair 将是 (xk,k)。

# 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)

复杂度: O(n*n)
输出:

[(5, 3), (4, 4)]