g0701_0800.s0705_design_hashset.MyHashSet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0701_0800.s0705_design_hashset;
// #Easy #Array #Hash_Table #Design #Linked_List #Hash_Function
// #2022_03_23_Time_29_ms_(57.06%)_Space_85_MB_(12.64%)
/**
* 705 - Design HashSet\.
*
* Easy
*
* Design a HashSet without using any built-in hash table libraries.
*
* Implement `MyHashSet` class:
*
* * `void add(key)` Inserts the value `key` into the HashSet.
* * `bool contains(key)` Returns whether the value `key` exists in the HashSet or not.
* * `void remove(key)` Removes the value `key` in the HashSet. If `key` does not exist in the HashSet, do nothing.
*
* **Example 1:**
*
* **Input**
*
* ["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "remove", "contains"]
* [ [], [1], [2], [1], [3], [2], [2], [2], [2]]
*
* **Output:** [null, null, null, true, false, null, true, null, false]
*
* **Explanation:**
*
* MyHashSet myHashSet = new MyHashSet();
* myHashSet.add(1); // set = [1]
* myHashSet.add(2); // set = [1, 2]
* myHashSet.contains(1); // return True
* myHashSet.contains(3); // return False, (not found)
* myHashSet.add(2); // set = [1, 2]
* myHashSet.contains(2); // return True
* myHashSet.remove(2); // set = [1]
* myHashSet.contains(2); // return False, (already removed)
*
* **Constraints:**
*
* * 0 <= key <= 106
* * At most 104
calls will be made to `add`, `remove`, and `contains`.
**/
public class MyHashSet {
private final boolean[] arr;
public MyHashSet() {
arr = new boolean[1000001];
}
public void add(int key) {
arr[key] = true;
}
public void remove(int key) {
arr[key] = false;
}
public boolean contains(int key) {
return arr[key];
}
}
/*
* 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);
*/
© 2015 - 2025 Weber Informatics LLC | Privacy Policy