Определение наличия повторяющихся элементов в массиве

Добавляйте числа в HashSet и возвращайте true при первой неуспешной вставке. Set.add возвращает false, если такое значение уже присутствует.

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

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

Добавляйте числа в HashSet и возвращайте true при первой неуспешной вставке. Set.add возвращает false, если такое значение уже присутствует.

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

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

Условие

Дан массив целых чисел numbers. Требуется вернуть true, если хотя бы одно значение встречается в массиве два или более раз, и false, если все элементы уникальны.

Ответ

Добавляйте числа в HashSet и возвращайте true при первой неуспешной вставке. Set.add возвращает false, если такое значение уже присутствует.

public boolean containsDuplicate(int[] numbers) {
    java.util.Set<Integer> seen = new java.util.HashSet<>();
    for (int number : numbers) {
        if (!seen.add(number)) return true;
    }
    return false;
}

Ожидаемое время O(n), дополнительная память O(n). Для пустого массива и одного элемента ответ false. Исходные данные не меняются. Сортировка с проверкой соседей — альтернатива O(n log n), если допустимо изменение массива или создание его копии.

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

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

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

Подробнее