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 布尔值是如何工作的,或者为什么 add void 以它的方式以及出于什么原因将数字放入哈希映射中。这个类实际上应该做的是使用 add 函数将项目添加到哈希映射,然后使用 find 来确定是否可以使用任何两个整数来加和目标。
慕慕森
相关分类