[leecode 170] Two Sum III - Data structure design

来源:互联网 发布:在淘宝如何绑定银行卡 编辑:程序博客网 时间:2024/05/21 12:40

Question:

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


分析:

这里的add不是加法,而是添加,向int类型的向量里添加数据;

判断容器的某些两个数据相加是否为所要find的数据。

用hashmap来存储,key是存储的值,而value是存储的次数,这样,如果3的value是2,则6可以用3+3实现


代码:

class TwoSum {public:void add(int number) {    hashmap[number]++;}bool find(int value) {    for (auto it = hashmap.begin(); it != hashmap.end(); ++it) {        auto got = hashmap.find(value - it->first);        if (got != hashmap.end() and (got != it or got->second > 1)) {               return true;        }    }    return false;}private:    unordered_map<int, int> hashmap;};


0 0
原创粉丝点击