Примечания LeetCode [53]: ✅✅✅ Решение Kotlin без Trie — объяснение || Очень просто и легко понять
![](https://i2.wp.com/miro.medium.com/1*nI_N9cO2WtxIhQR_M-JasQ.jpeg)
Проблема
Интуиция
- Перебрать
queries
. - Для каждого
query
выполните цикл по dictionary
- Подсчитайте количество разных символов между
query
и word
из dictionary
. - Если количество различных символов равно или меньше
2
, добавьте его в список result
.
Выполнение
class Solution {
fun twoEditWords(queries: Array<String>, dictionary: Array<String>): List<String> {
val result = mutableListOf<String>()
for (i in queries.indices) {
val query = queries[i]
for (j in dictionary.indices) {
val word = dictionary[j]
var count = 0
for (k in word.indices) {
if (count > 2) break
if (query[k] != word[k]) {
count++
}
}
if (count <= 2) {
result.add(query)
break
}
}
}
return result
}
}
Анализ сложности
- Временная сложность: O(queries.length *dictionary.length * n)
- Сложность пространства: O(1)
Похожие вопросы