170 Two Sum III - Data structure design
add(1); add(3); add(5);
find(4) -> true
find(7) -> falseclass TwoSum {
public:
/** Initialize your data structure here. */
TwoSum() {}
/** Add the number to an internal data structure.. */
void add(int number) {
if (nums.find(number) == nums.end())
nums.insert({number, false});
else nums[number] = true;
}
/** Find if there exists any pair of numbers which sum is equal to the value. */
bool find(int value) {
for (auto i : nums) {
int diff = value - i.first;
if (diff != i.first && nums.find(diff) != nums.end()) {
return true;
}
else if (diff == i.first && nums.find(diff) != nums.end() && nums[diff]) {
return true;
}
}
return false;
}
unordered_map<int, bool> nums;
};Last updated