https://leetcode.com/problems/design-hashmap/ | Easy |
---|
Реализуйте структуру данных HashMap
без использования встроенных хеш-таблиц. Необходимо реализовать класс MyHashMap
со следующими методами:
• put(key: Int, value: Int)
• get(key: Int): Int
• remove(key: Int)
class MyHashMap {
private val size = 1009
private val buckets = Array(size) { mutableListOf<Pair<Int, Int>>() }
private fun hash(key: Int) = key % size
fun put(key: Int, value: Int) {
val index = hash(key)
val bucket = buckets[index]
for (i in bucket.indices) {
if (bucket[i].first == key) {
bucket[i] = key to value
return
}
}
bucket.add(key to value)
}
fun get(key: Int): Int {
val index = hash(key)
for ((k, v) in buckets[index]) {
if (k == key) return v
}
return -1
}
fun remove(key: Int) {
val index = hash(key)
val bucket = buckets[index]
val iterator = bucket.iterator()
while (iterator.hasNext()) {
if (iterator.next().first == key) {
iterator.remove()
return
}
}
}
}