Ответ
Функция будет иметь сложность O(n + m), где n и m — размеры массивов.
Используем HashSet для второго массива (O(m) на создание), затем проходим по первому массиву (O(n)), проверяя наличие элементов в сете (O(1) на проверку).
Пример:
fun findMissing(arr1: IntArray, arr2: IntArray): Int? {
val set = arr2.toHashSet()
return arr1.firstOrNull { it !in set }
}
В худшем случае (элемент отсутствует или в конце) — O(n + m).