#define SIZE 50
typedef struct{
int key;
int value;
}HASH_TABLE;
HASH_TABLE* hashArray[SIZE];
int hashCode(int key) {
return key % SIZE;
}
bool containsDuplicate(int* nums, int numsSize){
int count = 1,i=0;
HASH_TABLE* data = (HASH_TABLE*)malloc(sizeof(HASH_TABLE*));
data->value = count;
for(i=0;i<numsSize;i++)
{
int hashIndex = hashCode(nums[i]);
hashArray[hashIndex]->key = nums[i];
hashArray[hashIndex]->value = data->value;
++hashIndex;
hashIndex %= SIZE;
if(hashArray[hashIndex]->key == nums[i])
{
data->value++;
}
}
if(data->value>0)
return true;
return false;
}
Я пытаюсь написать код для поиска дубликатов, используя алгоритм таблицы ha sh в C.
Код должен работать следующим образом
При наличии массива целые числа, найдите, если массив содержит дубликаты.
Ваша функция должна возвращать true, если какое-либо значение встречается в массиве хотя бы дважды, и возвращать false, если каждый элемент отличается.
Пример 1:
Вход: [1,2,3,1] Выход: true Пример 2:
Вход: [1,2,3,4] Выход: false Пример 3:
Входные данные: [1,1,1,3,3,4,3,2,4,2] Выходные данные: true
, пожалуйста, помогите мне исправить мою ошибку
Спасибо