Sobes.tech
Back to questions
Middle+
7

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

Companies where asked
Клиент ОТП

Answer from AI

sobes.tech AI

Чтобы проверить наличие дубликатов в массиве из 1 миллиона чисел на Java, можно использовать HashSet для эффективного поиска повторов:

import java.util.HashSet;

public boolean hasDuplicates(int[] arr) {
    HashSet<Integer> seen = new HashSet<>();
    for (int num : arr) {
        if (!seen.add(num)) { // add возвращает false, если элемент уже есть
            return true; // найден дубликат
        }
    }
    return false; // дубликатов нет
}

Этот способ имеет сложность O(n) по времени и O(n) по памяти, что приемлемо для миллиона элементов. Если память ограничена, можно отсортировать массив и проверить соседние элементы на равенство, но сортировка будет O(n log n).