Practice #2
Leçon 11 sur 14 du cours Tables de hachage - Série sur les structures de données n°4 de Coddy.
Défi
FacileÉcrivez une fonction twoSum qui reçoit un tableau d'entiers arr et un entier target, et renvoie les indices des deux éléments dont les valeurs s'additionnent pour obtenir target.
Renvoyez les indices par ordre croissant : [smaller_index, larger_index]. Chaque entrée possède exactement une paire valide.
Vous devez utiliser la classe HashMap fournie dans hashmap.<ext> — n'utilisez pas les types intégrés du langage comme les sets, dicts ou maps.
Essayez vous-même
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"
int main() {
char line[8192];
char tline[64];
if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
if (!fgets(tline, sizeof(tline), stdin)) tline[0] = '\0';
int arr[4096];
int n = 0;
char* tok = strtok(line, " \t\r\n");
while (tok) { arr[n++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
int target = atoi(tline);
int rs = 0;
int* r = twoSum(arr, n, target, &rs);
printf("%d %d\n", r[0], r[1]);
return 0;
}