LeetCode 题解(247) : Two Sum III - Data structure design

来源:互联网 发布:xp系统网络ip地址设置 编辑:程序博客网 时间:2024/05/29 14:29

题目:

Design and implement a TwoSum class. It should support the following operations:add andfind.

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) -> truefind(7) -> false

题解:

除了变态的时间要求,就是一个HashMap。

C++版:

class TwoSum {public:    // Add the number to an internal data structure.void add(int number) {    d[number]++;}    // Find if there exists any pair of numbers which sum is equal to the value.bool find(int value) {    for(auto i : d) {        int j = value - i.first;        if((j > i.first && d.count(j)) || (j == i.first && i.second > 1)) {            return true;        }    }    return false;}private:    unordered_map<int, int> d;};

Java版:

public class TwoSum {private HashMap<Integer, Integer> elements = new HashMap<Integer, Integer>(); public void add(int number) {if (elements.containsKey(number)) {elements.put(number, elements.get(number) + 1);} else {elements.put(number, 1);}} public boolean find(int value) {for (Integer i : elements.keySet()) {int target = value - i;if (elements.containsKey(target)) {if (i == target && elements.get(target) < 2) {continue;}return true;}}return false;}}

Python always TLE.

0 0
原创粉丝点击