170. Two Sum III - Data structure design

Easy (LinkedIn)

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 Show Company Tags Show Tags Show Similar Problems

public class TwoSum {

private List<Integer> numbers = new ArrayList<>();
private Map<Integer, Integer> map = new HashMap<>();

// Add the number to an internal data structure.
public void add(int number) {
    if(map.containsKey(number)) {
        map.put(number, map.get(number) + 1);
    } else {
        map.put(number, 1);
        numbers.add(number);
    }
}

// Find if there exists any pair of numbers which sum is equal to the value.
public boolean find(int value) {
    for(int i = 0; i < numbers.size(); i++) {
        int num1 = numbers.get(i);
        int num2 = value - num1;

        if(num1 == num2 && map.get(num1) > 1 || num1 != num2 && map.containsKey(num2)) {
            return true;
        }
    }

    return false;
}

}

results matching ""

    No results matching ""