Определение уникальности элементов в массиве целых чисел

Добавляйте числа в множество и возвращайте false при первом уже встреченном значении. Если обход завершился без повторов, результат true.

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

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

Добавляйте числа в множество и возвращайте false при первом уже встреченном значении. Если обход завершился без повторов, результат true.

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

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

Условие

Необходимо реализовать функцию, которая:

  • Принимает массив целых чисел (тип []int).
  • Возвращает true, если каждый элемент массива встречается только один раз (отсутствуют дубликаты).
  • Возвращает false, если в массиве присутствует хотя бы один повторяющийся элемент.

Ответ

Добавляйте числа в множество и возвращайте false при первом уже встреченном значении. Если обход завершился без повторов, результат true.

Реализация Go:

func allUnique(nums []int) bool {
    seen := make(map[int]struct{}, len(nums))
    for _, n := range nums {
        if _, exists := seen[n]; exists { return false }
        seen[n] = struct{}{}
    }
    return true
}

Среднее время O(n), память O(n). Пустой и nil-слайс считаются уникальными. Сортировка на месте даёт другую альтернативу: меньше дополнительной памяти, но изменяет порядок и требует O(n log n).

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

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

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

Подробнее