LeetCode in Kotlin

705. Design HashSet

Easy

Design a HashSet without using any built-in hash table libraries.

Implement MyHashSet class:

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:

Solution

class MyHashSet {
    private val arr: BooleanArray = BooleanArray(1000001)

    fun add(key: Int) {
        arr[key] = true
    }

    fun remove(key: Int) {
        arr[key] = false
    }

    operator fun contains(key: Int): Boolean {
        return arr[key]
    }
}

/*
 * Your MyHashSet object will be instantiated and called as such:
 * var obj = MyHashSet()
 * obj.add(key)
 * obj.remove(key)
 * var param_3 = obj.contains(key)
 */