Two sum III-data structure design

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

//method 1:
class TwoSum{
    public:
        void add(int number){
            ++m[number];
        }
    
        bool find(int value){
            for(auto a : m){
                int t = value - a.first;
                if((t != a.first && m.count(t)) || (t == a.first && a.second > 1)){
                    return true;
                }
            }
            return false;
        }
    private:
            unordered_map<int,int> m;
};

//method 2:
class TwoSum{
    public:
        void add(int number){
            s.insert(number);
        }
    
        bool find(int value){
            for(auto a : s){
                int cnt = a == value - a ? 1 : 0;
                if(s.count(value - a) > cnt){
                    return true;
                }
            }
            return false;
        }
};  
怕什么真理无穷,进一寸有一寸的欢喜。---胡适
原文地址:https://www.cnblogs.com/hujianglang/p/11521198.html