Sobes.tech
Назад к вопросам
Senior
9

Как бы ты проверил наличие дубликатов в массиве из одного миллиона чисел?

Компании, где спрашивали
Umbrella IT

Ответ от нейросети

sobes.tech AI

Для проверки наличия дубликатов в массиве из одного миллиона чисел можно использовать несколько подходов:

  1. Использование HashSet:
    • Пройти по массиву, добавляя каждый элемент в HashSet.
    • Если элемент уже есть в HashSet, значит найден дубликат.
import java.util.HashSet;

public boolean hasDuplicates(int[] arr) {
    HashSet<Integer> set = new HashSet<>();
    for (int num : arr) {
        if (!set.add(num)) {
            return true; // дубликат найден
        }
    }
    return false; // дубликатов нет
}
  1. Сортировка массива:
    • Отсортировать массив.
    • Пройти по нему и проверить соседние элементы на равенство.

Этот способ требует O(n log n) времени на сортировку, а HashSet — в среднем O(n) по времени.

Для массива из миллиона элементов HashSet — оптимальный вариант по времени, при условии достаточной памяти.