Найти тему
DEBAGanov

Java 415. Как найти повторяющиеся элементы в массиве?

Для поиска повторяющихся элементов в массиве можно использовать различные подходы. Рассмотрим два простых способа.

  • Использование вложенных циклов:
int[] arr = {1, 2, 3, 4, 5, 2, 3};
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
System.out.println("Повторяющийся элемент: " + arr[i]);
}
}
}

В данном примере мы используем два вложенных цикла for, чтобы перебрать все пары элементов массива и сравнить их между собой. Если находим два одинаковых элемента, то выводим сообщение о том, что найден повторяющийся элемент.

  • Использование класса HashSet:

int[] arr = {1, 2, 3, 4, 5, 2, 3};
Set<Integer> set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
if (!set.add(arr[i])) {
System.out.println("Повторяющийся элемент: " + arr[i]);
}
}

Здесь мы используем класс HashSet для хранения уникальных элементов массива. Метод add() добавляет элемент в множество и возвращает true, если элемент ранее не был добавлен. Если элемент уже есть в множестве и метод add() возвращает false, то мы выводим сообщение о том, что найден повторяющийся элемент.

Оба способа позволяют найти все повторяющиеся элементы в массиве. Однако, первый способ имеет временную сложность O(n^2), так как использует два вложенных цикла, а второй способ - O(n), так как использует хэш-таблицу для быстрого поиска уникальности элементов.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov