Sobes.tech
Junior — Middle
94

Jak implementovat algoritmus, který hledá první prvek z prvního pole, který chybí ve druhém poli?

Společnosti byly požádány
ПСБ

Odpověď od AI

sobes.tech AI

Для поиска первого элемента из первого массива, который отсутствует во втором, можно использовать множество (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 — длина первого массива.