Sobes.tech
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 — длина первого массива.