Чтобы найти уникальный элемент в массиве в C, вы можете использовать несколько методов. Вот несколько подходов:
-
Использование вложенного цикла: переберите каждый элемент массива и сравните его со всеми остальными элементами. Если соответствующий элемент не найден, он уникален.
int findUnique(int arr[], int size) { for (int i = 0; i < size; i++) { int j; for (j = 0; j < size; j++) { if (i != j && arr[i] == arr[j]) break; } if (j == size) { return arr[i]; } } return -1; // If no unique element is found } -
Использование хеш-таблицы: создайте хеш-таблицу (или массив флагов), чтобы отслеживать количество каждого элемента. Перейдите по массиву, увеличивая счетчик для каждого элемента. Наконец, найдите элемент со счетом 1.
#include <stdio.h> #define RANGE 1000 // Assuming element values are within a specific range int findUnique(int arr[], int size) { int hash[RANGE] = {0}; // Initialize hash table with zeros for (int i = 0; i < size; i++) { hash[arr[i]]++; } for (int i = 0; i < RANGE; i++) { if (hash[i] == 1) { return i; } } return -1; // If no unique element is found } -
Использование операции XOR: XOR всех элементов массива даст вам уникальный элемент.
int findUnique(int arr[], int size) { int result = 0; for (int i = 0; i < size; i++) { result ^= arr[i]; } return result; }
Это всего лишь несколько способов найти уникальный элемент в массиве с помощью C. Вы можете выбрать тот, который лучше всего соответствует вашим требованиям.