从小白开始刷算法 Hash 哈希篇 leetcode.705

简介: 从小白开始刷算法 Hash 哈希篇 leetcode.705

705. 设计哈希集合


不使用任何内建的哈希表库设计一个哈希集合(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 ,(已移除)


题目来源:力扣(LeetCode)


非正常解决思路

能否写出:能写出来

时间:5分钟

思路:

第一版,把s数组循环放在map上,再循环t数组,如果存在,就将对应的字符从HashMap中移除,最后剩下的字符即为多出的字符,但解答失败。

// 仅是我的思路代码,leetcode上大神更厉害
class MyHashSet {
    boolean[] nodes;
    public MyHashSet() {
        nodes = new boolean[1000009];
    }
    public void add(int key) {
        nodes[key] = true;
    }
    public void remove(int key) {
        nodes[key] = false;
    }
    public boolean contains(int key) {
        return nodes[key];
    }
}

时间复杂度:O(1)

空间复杂度:O(1)

相关文章
|
17天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
35 3
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
37 0
|
19天前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
21 2
|
22天前
|
存储 算法 C#
C#哈希查找算法
C#哈希查找算法
|
30天前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
30 0
|
1月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
3月前
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
48 1
安全哈希算法:SHA算法
|
3月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
49 6
|
3月前
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
435 1
|
3月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
48 1