Two Sum III - Data structure design

Total Accepted: 311 Total Submissions: 1345

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

[分析]
HASH table O(N)存, O(1) 取 

    public class TwoSum {  
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
          
        public void add(int number) {  
            if(map.containsKey(number)) {  
                map.put(number, map.get(number) + 1);  
            } else {  
                map.put(number, 1);  
            }  
        }  
      
        public boolean find(int value) {  
            for(int key : map.keySet()) {  
                int another = value - key;  
                if(another == key && map.get(key) > 1) {  
                    return true;  
                } else if(another != key && map.containsKey(another)) {  
                    return true;  
                }  
            }  
            return false;  
        }  
    } 

 




posted on 2015-01-09 09:26  风云逸  阅读(67)  评论(0)    收藏  举报