leet-code/src/main/java/leetcode/editor/cn/DesignHashset.java
2021-04-29 23:21:52 +08:00

104 lines
2.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//不使用任何内建的哈希表库设计一个哈希集合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<Integer> 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)
}