p128 设计一个类求和为给定值的两个数(lintcode 607)

一:解题思路

add:Time:O(1),find,Time:O(n)

二:完整代码示例 (C++版和Java版)

C++:

class TwoSum 
{
private:
    vector<int> data;
public:
    void add(int number) 
    {
        data.push_back(number);
    }

    bool find(int value)
    {
        set<int> s;
        for (int num : data)
        {
            if (s.count(value - num) != 0) return true;
            s.insert(num);
        }

        return false;
    }
};

Java:

public class TwoSum {
        private List<Integer> data=new ArrayList<>();
        
        public void add(int number) 
        {
              data.add(number);   
        }

       
        public boolean find(int value) 
        {
               Set<Integer> s=new HashSet<>();
               for(int num:data)
               {
                   if(s.contains(value-num)) return true;
                   s.add(num);
               }
               
               return false;
        }
    }

 

posted @ 2020-04-15 11:46  repinkply  阅读(122)  评论(0)    收藏  举报