170. Two Sum III - Data structure design
Description
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.
Constraints
Approach
Links
GeeksforGeeks
YouTube
Examples
add(1); add(3); add(5);
find(4) -> true
find(7) -> false
Solutions
/**
* Time complexity :
* Space complexity :
*/
class TwoSum {
private Map<Integer, Integer> nums;
/** Initialize your data structure here. */
public TwoSum() {
nums = new HashMap<Integer, Integer>();
}
/** Add the number to an internal data structure.. */
public void add(int number) {
nums.put(number, nums.getOrDefault(number, 0)+1);
}
/** Find if there exists any pair of numbers which
sum is equal to the value. */
public boolean find(int value) {
for(Integer n: nums.keySet()) {
int complement = value - n;
if(nums.containsKey(complement)) {
if(complement == n && nums.get(complement) < 2) {
continue;
}
return true;
}
}
return false;
}
}
/**
* Your TwoSum object will be instantiated and called as such:
* TwoSum obj = new TwoSum();
* obj.add(number);
* boolean param_2 = obj.find(value);
*/
Follow up
Last updated
Was this helpful?