public class TwoSum {
private HashMap<Integer, Integer> elements = new HashMap<Integer, Integer>();
public void add(int number) {
if (elements.containsKey(number)) {
elements.put(number, elements.get(number) + 1);
} else {
elements.put(number, 1);
}
}
public boolean find(int value) {
for (Integer i : elements.keySet()) {
int target = value - i;
if (elements.containsKey(target)) {
if (i == target && elements.get(target) < 2) {
continue;
}
return true;
}
}
return false;
}
}
我不确定该类如何能够获取哈希图中的数字并告诉我们是否可以将 2 个数字相加以创建另一个数字。具体来说,我不明白 find boolean 是如何工作的,或者为什么 add void 会以它的方式将数字放入哈希图中,以及出于什么原因。实际上,这个类应该做的是使用 add 函数将项目添加到哈希映射中,然后使用 find 来确定是否可以使用任何两个整数来添加到目标。