zoukankan      html  css  js  c++  java
  • leetcode3 Two Sum III – Data structure design

    Question:

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

    add(input) – Add the number input to an internal data structure.

    find(value) – 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

          我们把每个数字和其出现的次数建立映射,然后遍历哈希表,对于每个值,我们先求出此值和目标值之间的差值t,然后分两种情况来看,如果当前值不等于差值t,那么只要哈希表中有差值t就返回True,或者是当差值t等于当前值时,如果此时哈希表的映射次数大于1,则表示哈希表中还有另一个和当前值相等的数字,二者相加就是目标值。

    class TwoSum { 

    private: 

            unordered_map<int,int> table; 

    public: 

            void add(int number) { 

                     table[number]++; 

            } 

            bool find(int value) { 

                     for(auto elem : table)

                     { 

                             for (vector<string>::iterator i = v.begin(); i != v.end(); ++i);

                             for (auto i = v.begin(); i != v.end(); ++i);

                             int num1 = elem.second; 

                             int num2 = value == (elem.first << 1) ? num1 - 1 : buffer.find(value - elem.first) != buffer.end(); 

                             if(num1 && num2){ 

                                      return true; 

                             } 

                     } 

                     return false; 

            } 

    }; 

     

  • 相关阅读:
    PHP面试系列之Linux(一) ----- Linux基础
    Redis入门(一)---安装
    获取主机ip地址
    Ubuntu安装Apache
    Ubuntu安装MySQL/MariaDB
    Ubuntu安装PHP7
    shell一次性执行多条命令
    将宿主主机上的目录挂载到Docker中
    bind 仿造 重写bind
    echars 饼状图 轮循 水平翻转
  • 原文地址:https://www.cnblogs.com/whowhoha/p/5743283.html
Copyright © 2011-2022 走看看