From d136b001b6d9590b268dd12aa936d1ad34915ebf Mon Sep 17 00:00:00 2001 From: "huangge1199@hotmail.com" Date: Tue, 27 Apr 2021 22:00:01 +0800 Subject: [PATCH] =?UTF-8?q?705:=E8=AE=BE=E8=AE=A1=E5=93=88=E5=B8=8C?= =?UTF-8?q?=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetcode/editor/cn/DesignHashset.java | 104 ++++++++++++++++++ .../java/leetcode/editor/cn/DesignHashset.md | 44 ++++++++ 2 files changed, 148 insertions(+) create mode 100644 LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.java create mode 100644 LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.md diff --git a/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.java b/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.java new file mode 100644 index 0000000..7aa091d --- /dev/null +++ b/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.java @@ -0,0 +1,104 @@ +//不使用任何内建的哈希表库设计一个哈希集合(HashSet)。 +// +// 实现 MyHashSet 类: +// +// +// void add(key) 向哈希集合中插入值 key 。 +// bool contains(key) 返回哈希集合中是否存在这个值 key 。 +// void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。 +// +// +// +// 示例: +// +// +//输入: +//["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "remove +//", "contains"] +//[[], [1], [2], [1], [3], [2], [2], [2], [2]] +//输出: +//[null, null, null, true, false, null, true, null, false] +// +//解释: +//MyHashSet myHashSet = new MyHashSet(); +//myHashSet.add(1); // set = [1] +//myHashSet.add(2); // set = [1, 2] +//myHashSet.contains(1); // 返回 True +//myHashSet.contains(3); // 返回 False ,(未找到) +//myHashSet.add(2); // set = [1, 2] +//myHashSet.contains(2); // 返回 True +//myHashSet.remove(2); // set = [1] +//myHashSet.contains(2); // 返回 False ,(已移除) +// +// +// +// 提示: +// +// +// 0 <= key <= 106 +// 最多调用 104 次 add、remove 和 contains 。 +// +// +// +// +// 进阶:你可以不使用内建的哈希集合库解决此问题吗? +// Related Topics 设计 哈希表 +// 👍 157 👎 0 + +package leetcode.editor.cn; + +import java.util.ArrayList; +import java.util.List; + +//705:设计哈希集合 +public class DesignHashset{ + public static void main(String[] args) { + //测试代码 +// Solution solution = new DesignHashset().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +class MyHashSet { + List list; + + /** Initialize your data structure here. */ + public MyHashSet() { + list = new ArrayList<>(); + } + + public void add(int key) { + if(list.contains(key)){ + return; + } + list.add(key); + } + + public void remove(int key) { + for (int i = 0; i < list.size(); i++) { + if(list.get(i)==key){ + list.remove(i); + } + } + } + + /** Returns true if this set contains the specified element */ + public boolean contains(int key) { + for (int i = 0; i < list.size(); i++) { + if(list.get(i)==key){ + return true; + } + } + return false; + } +} + +/** + * Your MyHashSet object will be instantiated and called as such: + * MyHashSet obj = new MyHashSet(); + * obj.add(key); + * obj.remove(key); + * boolean param_3 = obj.contains(key); + */ +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.md b/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.md new file mode 100644 index 0000000..830a019 --- /dev/null +++ b/LeetCode/src/main/java/leetcode/editor/cn/DesignHashset.md @@ -0,0 +1,44 @@ +

不使用任何内建的哈希表库设计一个哈希集合(HashSet)。

+ +

实现 MyHashSet 类:

+ + +  + +

示例:

+ +
+输入:
+["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "remove", "contains"]
+[[], [1], [2], [1], [3], [2], [2], [2], [2]]
+输出:
+[null, null, null, true, false, null, true, null, false]
+
+解释:
+MyHashSet myHashSet = new MyHashSet();
+myHashSet.add(1);      // set = [1]
+myHashSet.add(2);      // set = [1, 2]
+myHashSet.contains(1); // 返回 True
+myHashSet.contains(3); // 返回 False ,(未找到)
+myHashSet.add(2);      // set = [1, 2]
+myHashSet.contains(2); // 返回 True
+myHashSet.remove(2);   // set = [1]
+myHashSet.contains(2); // 返回 False ,(已移除)
+ +

 

+ +

提示:

+ + + +

 

+ +

进阶:你可以不使用内建的哈希集合库解决此问题吗?

+
Related Topics
  • 设计
  • 哈希表
  • \n
  • 👍 157
  • 👎 0
  • \ No newline at end of file