Design and implement a TwoSum class. It should support the following operations:add and find.
add - Add the number to an internal data structure.
find - Find if there exists any pair of numbers which sum is equal to the value.
For example,
add(1); add(3); add(5);
find(4) -> true
find(7) -> false
使用hashmap
public class sum2_add_and_find {
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
void add(int number){
if(map.containsKey(number)){
map.put(number,map.get(number)+1);
}
else{
map.put(number,1);
}
}
boolean find(int value){
for(int key:map.keySet()) {
if (map.containsKey(value - key) && (value - key != key)) {
return true;
} else if ((value - key == key) && (map.get(key) > 1)) {
System.out.println("true");
return true;
}
}
return false;
}
public static void main(String[] args) {
sum2_add_and_find s=new sum2_add_and_find();
// Scanner scanner=new Scanner(System.in);
s.add(1);
s.add(3);
s.add(5);
s.add(2);
boolean res1=s.find(9);
if(res1){
System.out.println("true");
}
else{
System.out.println("false");
}
}}