27. Найти первый неповторяющийся элемент в массиве
Условие задачи:
🔥 Дан массив целых чисел {9, 4, 9, 6, 6, 4, 5}. Необходимо найти первый элемент, который в этом массиве встречается ровно один раз.
Код:
public class Main {
public static void main(String[] args) {
int[] array = {9, 4, 9, 6, 6, 4, 5};
// TODO
}
}
Пример 1
Вход:
{9, 4, 9, 6, 6, 4, 5}
Выход:
5
Пример 2
Вход:
{1, 2, 3, 2, 1}
Выход:
3
Спойлеры к решению
Подсказки
💡 Используйте
💡 Первый проход по массиву: для каждого элемента увеличивайте счётчик в карте.
💡 Второй проход: найдите в исходном массиве первый элемент с частотой
LinkedHashMap, чтобы сохранить порядок вставки и подсчитать количество вхождений каждого числа.💡 Первый проход по массиву: для каждого элемента увеличивайте счётчик в карте.
💡 Второй проход: найдите в исходном массиве первый элемент с частотой
1 в карте.Решение
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int[] array = {9, 4, 9, 6, 6, 4, 5};
// Подсчёт вхождений с сохранением порядка
Map<Integer, Integer> countMap = new LinkedHashMap<>();
for (int num : array) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
// Поиск первого уникального элемента
int firstUnique = -1;
for (int num : array) {
if (countMap.get(num) == 1) {
firstUnique = num;
break;
}
}
if (firstUnique != -1) {
System.out.println("Первый неповторяющийся элемент: " + firstUnique);
} else {
System.out.println("Уникальных элементов не найдено");
}
}
}