Menu
Coddy logo textTech

תרגול #2

שיעור 11 מתוך 14 בקורס טבלאות גיבוב – סדרת מבני נתונים #4 של Coddy.

challenge icon

אתגר

קל

כתבו פונקציה twoSum שמקבלת מערך של מספרים שלמים arr ומספר שלם target, ומחזירה את האינדקסים של שני האיברים שסכום הערכים שלהם הוא target.

החזירו את האינדקסים בסדר עולה: [smaller_index, larger_index]. לכל קלט יש בדיוק זוג תקין אחד.

חובה להשתמש במחלקה HashMap שסופקה בקובץ hashmap.<ext> — אל תשתמשו במבנים מובנים בשפה, כמו קבוצות, מילונים או מפות.

נסו בעצמכם

#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;
}

כל השיעורים ביחידה טבלאות גיבוב – סדרת מבני נתונים #4

תרגלו בעצמכם: קומפיילר C אונליין