Junior — Middle
Hogyan valósítson meg egy olyan algoritmust, amely az első tömb első olyan elemét keresi, amely nem szerepel a második tömbben?
sobes.tech MI
Válasz az MI-től
Для поиска первого элемента из первого массива, который отсутствует во втором, можно использовать множество (Set) для быстрого поиска. Сначала создаём Set из второго массива, затем проходим по первому массиву и возвращаем первый элемент, которого нет в этом Set.
Пример на Kotlin для Android:
fun findFirstMissingElement(arr1: List<Int>, arr2: List<Int>): Int? {
val set2 = arr2.toSet()
for (element in arr1) {
if (element !in set2) {
return element
}
}
return null // если все элементы из arr1 есть в arr2
}
// Использование:
val firstArray = listOf(1, 2, 3, 4)
val secondArray = listOf(2, 3, 5)
val result = findFirstMissingElement(firstArray, secondArray) // вернёт 1
Такой подход эффективен по времени, так как поиск во множестве происходит за O(1), а общий алгоритм — за O(n), где n — длина первого массива.