Функция определения одинаковости элементов массива

Сравните каждый элемент с первым и верните его, если все равны. Для пустого массива и несовпадения нужно заранее выбрать представление результата.

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

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

Сравните каждый элемент с первым и верните его, если все равны. Для пустого массива и несовпадения нужно заранее выбрать представление результата.

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

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

Условие

Создайте функцию, которая проверяет, что все элементы переданного массива имеют одинаковое значение. Если проверка проходит успешно, функция должна вернуть любой элемент этого массива.

Ответ

Сравните каждый элемент с первым и верните его, если все равны. Для пустого массива и несовпадения нужно заранее выбрать представление результата.

func commonElement<T: Equatable>(_ values: [T]) -> T? {
    guard let first = values.first else { return nil }
    for value in values.dropFirst() {
        if value != first { return nil }
    }
    return first
}

Для [4, 4, 4] вернётся 4, для [4, 5] и [] — nil. Время O(n), дополнительная память O(1). Если нужно различать пустой массив и неодинаковые значения, используйте отдельный enum результата. Для массива optional-элементов также важно не путать найденный nil-элемент с отсутствием общего результата.

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

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

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

Подробнее