📅  最后修改于: 2023-12-03 14:56:52.906000             🧑  作者: Mango
给定一个数组A []和一个数字x,检查A []中的对,总和为x。
给定一个数组A []和一个数字x,编写一个函数来检查A []中是否存在两个数字,它们的总和为x。如果这样的一对数字存在,请打印出这对数字。
例如,如果数组A []是{0, -1, 2, -3, 1}以及x为-2,则应该找到一对数字,它们的总和为x并输出:-3和1。
我们可以使用多种算法来解决这个问题,其中一些算法的时间复杂度为O(n ^ 2),但是有一个更好的方法,它的时间复杂度为O(n)。该算法使用散列表来解决这个问题。
def findPairs(A, x):
hashTable = {}
for i in range(len(A)):
if x - A[i] in hashTable:
print("Pair found:", A[i], "and", x - A[i])
return
hashTable[A[i]] = 1
print("No pair found")
该算法的时间复杂度为O(n),空间复杂度为O(n)。因此,我们可以在常数时间内找到一对数字,总和为x。