Latihan #2
Pelajaran 11 dari 14 dalam kursus Tabel Hash, Seri Struktur Data #4 di Coddy.
Tantangan
MudahTulis sebuah fungsi twoSum yang menerima array bilangan bulat arr dan bilangan bulat target, lalu mengembalikan indeks dari dua elemen yang nilainya jika dijumlahkan sama dengan target.
Kembalikan indeks dalam urutan menaik: [smaller_index, larger_index]. Setiap input memiliki tepat satu pasangan yang valid.
Kamu harus menggunakan class HashMap yang disediakan dalam hashmap.<ext> — jangan gunakan fitur bawaan bahasa seperti set, dict, atau map.
Coba sendiri
#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;
}
Semua pelajaran di Tabel Hash, Seri Struktur Data #4
Latihan sendiri: Compiler C online