讨论/技术交流/怎么办,家人们,运行之后一直输出的是],LeetCode第一题/
怎么办,家人们,运行之后一直输出的是],LeetCode第一题
typedef struct {
    int key;  //关键码为target-nums[i]
    int val;  //值
}HashTable;

int find(HashTable *k, int target, int flag ){
    for (int i = 0; i < flag; ++i) {
        if (k[i].key == target) {
            return i;
        }
    }
    return -1;
}

void insert(HashTable *k,int target, int flag, int value){
    k[flag].val = value;
    k[flag].key = target-value;
}

int* twoSum(int* nums, int numsSize, int target,int* returnSize){
    HashTable k[numsSize];
     int* s = (int*)malloc(sizeof(int) * 2);
    for (int i = 0; i < numsSize; ++i) {
        if (find(k,nums[i],i) == -1){
            insert(k,target,i,nums[i]);
        }
        else{
            s[0] = find(k,nums[i],i);
            s[1] = i;
            returnSize = 2;
            printf("[%d,%d]",s[0],s[1]);
            return s;
        }
    }
    returnSize = 0;
    return NULL;
}

QQ图片20210330134227.png

救救孩子吧

2
共 1 个回复

变量returnSize是一个指针啊,你在修改的时候得写成*returnSize = 2;才行