문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
내장된 해시 테이블 라이브러리를 사용하지 않고 HashSet을 설계해라.
MyHashSet 클래스를 구현해라.
#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)
class MyHashSet {
private boolean[] storage;
public MyHashSet() {
storage = new boolean[1_000_001];
}
public void add(int key) {
storage[key] = true;
}
public void remove(int key) {
storage[key] = false;
}
public boolean contains(int key) {
return storage[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);
*/