#include #include #include #include "hash_table.h" int oddOccurring(int A[], int N) { HashTable ht = HashTableNew(); for (int i = 0; i < N; i++) { if (!HashTableContains(ht, A[i])) { HashTableInsert(ht, A[i], 1); } else { int val = HashTableGet(ht, A[i]); HashTableInsert(ht, A[i], val+1); } } int counter = 0; for (int i = 0; i < N; i++) { int val = HashTableGet(ht, A[i]); if (val % 2 == 1) { counter++; HashTableInsert(ht, A[i], 0); } } return counter; } int main(void) { printf("%d\n", oddOccurring((int[]){4, 3, 4, 8, 8, 4}, 6)); printf("%d\n", oddOccurring((int[]){7, 2, 1, 5, 6, 9}, 6)); printf("%d\n", oddOccurring((int[]){1, 1, 3, 3, 7, 7}, 6)); }