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.
two sum是个经典问题,这里自己实现的类借助unordered_map
查找时依据是否One和two相等来分两种对待。
<pre name="code" class="cpp">class twosum
{
unordered_map<int,int> array;
public:
void add(int n)
{
array[n]++;
}
bool find(int value)
{
int one,two;
for(unordered_map<int,int>::iterator it=array.begin();it!=array.edn();it++)
{
one=it->first;
two=value-one;
if(two==one&&it->second>1||(two!=one&&array.find(two)!=array.end())
return true;
}
return false;
}
};
本文介绍如何设计并实现一个TwoSum类,该类能够支持add方法用于添加数字到内部数据结构,以及find方法用于查找是否存在两个数字之和等于指定值的情况。通过使用unordered_map进行高效查找。
261

被折叠的 条评论
为什么被折叠?



