zoukankan      html  css  js  c++  java
  • LeetCode 170. Two Sum III

    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
    

     题目标签:Hash Table

      题目让我们设计一个 两数之和的 class, 要有add(number) 和 find(value)功能。

      建立HashMap,number 当作 key;number 出现的次数当作 value保存。

      要注意的是,两数之和的 两数可以是相同的数字,出现两次。比如 2 + 2 = 4 也是可以的。

    Java Solution:

    Runtime beats 82.39% 

    完成日期:05/16/2017

    关键词:HashMap

    关键点:HashMap<number, occurrence>

     1 class TwoSum 
     2 {
     3     HashMap<Integer, Integer> map;
     4     /** Initialize your data structure here. */
     5     public TwoSum() 
     6     {
     7         map = new HashMap<>();
     8     }
     9     
    10     /** Add the number to an internal data structure.. */
    11     public void add(int number) 
    12     {
    13         map.put(number, map.getOrDefault(number, 0) + 1);
    14     }
    15     
    16     /** Find if there exists any pair of numbers which sum is equal to the value. */
    17     public boolean find(int value) 
    18     {
    19         for(int num: map.keySet())
    20         {
    21             int target = value - num;
    22             
    23             if(num == target)
    24             {
    25                 if(map.get(num) > 1)
    26                     return true;
    27             }
    28             else
    29             {
    30                 if(map.containsKey(target))
    31                     return true;
    32             }
    33         }
    34         
    35         return false;
    36     }
    37 }
    38 
    39 /**
    40  * Your TwoSum object will be instantiated and called as such:
    41  * TwoSum obj = new TwoSum();
    42  * obj.add(number);
    43  * boolean param_2 = obj.find(value);
    44  */

    参考资料:N/A

    LeetCode 题目列表 - LeetCode Questions List

  • 相关阅读:
    20201224-3
    20201224-3 列表的使用1
    20201224 字符串常用操作
    20201224-1
    20201223-1 俄罗斯方块
    3月27日:毕业设计计划
    3月26日:毕业设计计划
    3月25日:毕业设计计划
    3月24日:毕业设计计划
    3月23日:毕业设计计划
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7734680.html
Copyright © 2011-2022 走看看