📅  最后修改于: 2023-12-03 15:37:14.079000             🧑  作者: Mango
给定一个数组A和一个整数K,编写一个程序来查找数组A中是否存在两个数字,它们的和等于K。
函数声明为:int findSum(int A[], int N, int K);
第一行包含一个整数T,表示测试用例的数量。
对于每个测试用例,第一行包含一个整数N,表示数组的长度。
第二行包含N个空格分隔的整数,表示数组A的元素。
第三行包含一个整数K,表示要查找的和。
对于每个测试用例,如果可以找到两个数字,使它们的和等于K,则打印1,否则输出0。
2
4
1 2 4 3
8
4
2 4 6 8
5
1
0
这道题可以使用哈希表来实现,具体步骤如下:
```python
def findSum(A, n, K):
hash_table = {}
for i in range(n):
diff = K - A[i]
if diff in hash_table:
return 1
hash_table[A[i]] = True
return 0
t = int(input())
for _ in range(t):
n = int(input())
A = list(map(int, input().split()))
K = int(input())
print(findSum(A, n, K))