Leetcode 816 Solution
This article provides solution to leetcode question 816 (design-hashset)
Access this page by simply typing in "lcs 816" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/design-hashset
Solution
class MyHashSet {
vector<list<int>> hash_set;
public:
/** Initialize your data structure here. */
MyHashSet() {
hash_set.resize(7927);
}
void add(int key) {
int hash_key = key % 7927;
auto& hash_vals = hash_set[hash_key];
for (auto val: hash_vals)
if (val == key)
return;
hash_vals.push_back(key);
}
void remove(int key) {
int hash_key = key % 7927;
auto& hash_vals = hash_set[hash_key];
for (auto it = hash_vals.begin(); it != hash_vals.end(); it++)
{
if (*it == key)
{
hash_vals.erase(it);
return;
}
}
}
/** Returns true if this set contains the specified element */
bool contains(int key) {
int hash_key = key % 7927;
auto& hash_vals = hash_set[hash_key];
for (auto val: hash_vals)
if (val == 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);
* bool param_3 = obj.contains(key);
*/