加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

[LeetCode] 170. Two Sum III - Data structure design

发布时间:2020-12-15 07:27:13 所属栏目:Java 来源:网络整理
导读:Two Sum的变种,是一道设计题。用hashmap存,在Java可以用一个list帮助更快找到需要的元素,JS不需要这样做。 需要记得判断当num1 + num2 === sum时,若num1 === num2,看hashmap里面num的value是否大于1。 1 /* * 2 * Initialize your data structure here.

Two Sum的变种,是一道设计题。用hashmap存,在Java可以用一个list帮助更快找到需要的元素,JS不需要这样做。

需要记得判断当num1 + num2 === sum时,若num1 === num2,看hashmap里面num的value是否大于1。

 1 /**
 2  * Initialize your data structure here.
 3  */
 4 var TwoSum = function() {
 5     this.map = {};
 6 };
 7 
 8 /**
 9  * Add the number to an internal data structure..
10  * @param {number} number
11  * @return {void}
12  */
13 TwoSum.prototype.add = function(number) {
14     if (this.map[number]) {
15         this.map[number]++;
16     } else {
17         this.map[number] = 1;
18     }
19 };
20 
21 /**
22  * Find if there exists any pair of numbers which sum is equal to the value.
23  * @param {number} value
24  * @return {boolean}
25  */
26 TwoSum.prototype.find = function(value) {
27     for (var key in this.map) {
28         var num1 = key;
29         var num2 = value - key;
30         if (this.map[num2]) {
31             if (num1 != num2 || this.map[num2] > 1) {
32                 return true;
33             }
34         }
35     }
36     return false;
37 };
38 
39 /**
40  * Your TwoSum object will be instantiated and called as such:
41  * var obj = new TwoSum()
42  * obj.add(number)
43  * var param_2 = obj.find(value)
44  */

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读