https://leetcode.com/problems/design-hashset/ Easy

Условие

Реализуйте структуру данных HashSet без использования встроенных хеш-таблиц. Необходимо реализовать класс MyHashSet со следующими методами:

add(key: Int)

remove(key: Int)

contains(key: Int): Boolean

Решение

class MyHashSet {
    private val size = 1009
    private val buckets = Array(size) { mutableListOf<Int>() }

    private fun hash(key: Int) = key % size

    fun add(key: Int) {
        val index = hash(key)
        if (key !in buckets[index]) {
            buckets[index].add(key)
        }
    }

    fun remove(key: Int) {
        val index = hash(key)
        buckets[index].remove(key)
    }

    fun contains(key: Int): Boolean {
        val index = hash(key)
        return key in buckets[index]
    }
}