170. Two Sum III - Data structure design

Description

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.

Solution

使用字典存储

class TwoSum(object):

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.cnt_dict={}
        

    def add(self, number):
        """
        Add the number to an internal data structure..
        :type number: int
        :rtype: None
        """
        if number in self.cnt_dict:
            self.cnt_dict[number]+=1
        else:
            self.cnt_dict[number]=1
        

    def find(self, value):
        """
        Find if there exists any pair of numbers which sum is equal to the value.
        :type value: int
        :rtype: bool
        """
        for k,v in self.cnt_dict.items():
            if value-k in self.cnt_dict:
                if value-k==k:
                    if v>1:
                        return True
                else:
                    return True
        return False
  
# Your TwoSum object will be instantiated and called as such:
# obj = TwoSum()
# obj.add(number)
# param_2 = obj.find(value)  

你可能感兴趣的:(170. Two Sum III - Data structure design)