leetcode[170]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
class TwoSum 

{

private:

    map<int,int> fmap;

public:

    void add(int x)

    {

        if(!fmap.count(x))fmap[x]=1;

        else fmap[x]++;

    }

    bool find(int target)

    {

        for (map<int,int>::iterator iter=fmap.begin();iter!=fmap.end();iter++)

        {

            int i=iter->first;

            if(fmap.count(target-i))

            {

                if(i!=target-i)return true;

                else if(fmap[i]>=2)return true;

            }

        }

        return false;

    }

};

 



你可能感兴趣的:(LeetCode)