Назад к вопросам
Senior
9
Как бы ты проверил наличие дубликатов в массиве из одного миллиона чисел?
Компании, где спрашивали
Umbrella IT
Ответ от нейросети
sobes.tech AI
Для проверки наличия дубликатов в массиве из одного миллиона чисел можно использовать несколько подходов:
- Использование 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; // дубликатов нет
}
- Сортировка массива:
- Отсортировать массив.
- Пройти по нему и проверить соседние элементы на равенство.
Этот способ требует O(n log n) времени на сортировку, а HashSet — в среднем O(n) по времени.
Для массива из миллиона элементов HashSet — оптимальный вариант по времени, при условии достаточной памяти.