您的位置:首页 > 其它

LeetCode 170. Two Sum III - Data structure design

2017-01-07 07:55 393 查看
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

思路:

1. TwoSum,首先就是用hash,add()时把每个数存入hash,统计出现的次数作为value;find()时,遍历hash,查找target-hash中每一个key,如果查找的数不等于target-key,只要存在即可;如果查找的数等于target-key,则查找的数的出现频率大于等于2即可!

class TwoSum {
public:
void add(int number) {
++m[number];
}
bool find(int value) {
for(auto&mm:m){
if(value-mm.first==mm.first&&mm.second>1) return true;
if(value-mm.first!=mm.first&&m.count(value-mm.first)) return true;
}
return false;
}
private:
unordered_map<int,int> m;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode hashtable