Two sum III-data structure design

Posted hujianglang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
        
;  

 

以上是关于Two sum III-data structure design的主要内容,如果未能解决你的问题,请参考以下文章

[LintCode] Two Sum - Data Structure Design

170. Two Sum III - Data structure design

170. Two Sum III - Data structure design

170. Two Sum III - Data structure design

[LC] 170. Two Sum III - Data structure design

LeetCode-Two Sum III - Data structure design