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

Solution: HashMap

import collections


class TwoSum(object):

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.nums = collections.defaultdict(int)

    def add(self, num):
        """
        Add the number to an internal data structure..
        :type num: int
        :rtype: void
        """
        self.nums[num] += 1

    def find(self, val):
        """
        Find if there exists any pair of numbers which sum is equal to the value.
        :type val: int
        :rtype: bool
        """
        for num in self.nums:
            other = val - num
            if other in self.nums and (other != num or self.nums[num] >= 2):
                return True
        return False

results matching ""

    No results matching ""