• 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; 

            } 

    }; 

     

  • 相关阅读:
    第8组 Beta(2/6)(赵红霞)
    第8组 Beta (1/6)(赵红霞)
    第8组 Alpha(6/6)(赵红霞)
    第8组 Alpha(5/6)(赵红霞)
    第8组 Alpha(4/6)(赵红霞)
    第8组 Alpha(3/6)(赵红霞)
    第8组 Alpha(2/6)(赵红霞)
    Windows炫酷桌面钢铁侠主题 雨滴 Rainmeter
    blob 视频无法解析下载?不存在的,来瞅瞅这个方法
    java C C++ .net ps 安卓 等各种教学视频免费送
  • 原文地址:https://www.cnblogs.com/whowhoha/p/5743283.html
Copyright © 2020-2023  润新知