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
public class TwoSum { private HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); // Add the number to an internal data structure. public void add(int number) { if (map.containsKey(number)) { map.put(number, map.get(number) + 1); } else { map.put(number, 1); } } // Find if there exists any pair of numbers which sum is equal to the value. public boolean find(int value) { for (Integer s : map.keySet()) { int tem = value - s; if (tem == s && map.get(tem) > 1) { return true; } if ( tem != s && map.containsKey(tem)) { return true; } } return false; } }
没有评论:
发表评论