#include #include #include #include "hash_table.h" bool twoSum(int A[], int N, int S) { HashTable ht = HashTableNew(); for (int i = 0; i < N; i++) { HashTableInsert(ht, A[i], i); } for (int i = 0; i < N; i++) { int val_to_check = S - A[i]; bool is_in = HashTableContains(ht, val_to_check); if (is_in) { int index_stored = HashTableGet(ht, val_to_check); if (index_stored != i) { return true; } } } return false; } int main(void) { int A[] = {12, 6, 3, 3, 7, 8}; bool result = twoSum(A, 6, 13); printf("%d\n", result); printf("%d\n", twoSum(A, 6, 6)); }