716. 求和查找
给出两个整型数组
inputs
i
n
p
u
t
s
和
tests
t
e
s
t
s
,只要你能从
inputs
i
n
p
u
t
s
中挑出一对数字,令它们的和能够在
tests
t
e
s
t
s
被找到,就返回真;如果一对都找不到,则返回假。
样例
输入:
[-3,5,3]
[-1,0,1,2]
输出:
true
输入:
[3,4,5]
[1,3,6]
输出:
false
说明
第一组样例中,
(-3) + 3 = 0, (-3) + 5 = 2
(
−
3
)
+
3
=
0
,
(
−
3
)
+
5
=
2
,
0
0
和
2
2
都出现在
tests
t
e
s
t
s
中,返回 true。
第二组样例中,不能找到一对的和等于
tests
t
e
s
t
s
中的任何数,返回 false。
注意事项
两个数组的长度分别为
n, m
n
,
m
,
1 \le n, m \le 200
1
≤
n
,
m
≤
2
0
0
。
数组中的值满足
-1000 \le inputs_i, tests_i \le 1000
−
1
0
0
0
≤
i
n
p
u
t
s
i
,
t
e
s
t
s
i
≤
1
0
0
0
。
public class Solution {
/**
* @param inputs: an integer array
* @param tests: an integer array
* @return: return true if sum of two values in inputs are in tests.
*/
public boolean addAndSearch(int[] inputs, int[] tests) {
HashSet<Integer> hashSet=new HashSet<>();
for (int test : tests) {
hashSet.add(test);
}
for (int i = 0; i < inputs.length; i++) {
for (int j = i+1; j < inputs.length; j++) {
int temp=inputs[i]+inputs[j];
if (hashSet.contains(temp)){
return true;
}
}
}
return false;
}
}