Напишите функцию, которая возвращает первый неповторяющийся элемент массива.

Сначала подсчитайте частоты, затем пройдите исходный массив и верните первый элемент с частотой 1. Порядок Dictionary не определяет «первый».

Короткий ответ

Что ответить на собеседовании

Сначала подсчитайте частоты, затем пройдите исходный массив и верните первый элемент с частотой 1. Порядок Dictionary не определяет «первый».

Подробный разбор

Ответ с пояснениями

Сначала подсчитайте частоты, затем пройдите исходный массив и верните первый элемент с частотой 1. Порядок Dictionary не определяет «первый».

Swift-реализация:

func firstUnique<T: Hashable>(_ values: [T]) -> T? {
    var counts: [T: Int] = [:]
    for value in values { counts[value, default: 0] += 1 }
    for value in values {
        if counts[value] == 1 { return value }
    }
    return nil
}

Для [2, 3, 2, 4, 3] результат 4. Пустой массив или отсутствие уникального значения дают nil. Среднее время O(n), память O(k). Под «неповторяющимся» понимается встречающийся ровно один раз, а не один представитель каждой группы дубликатов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее