力扣习题两数之和问题

img


int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    for (int i = 0; i < numsSize; ++i) {
        for (int j = i + 1; j < numsSize; ++j) {
            if (nums[i] + nums[j] == target) {
                int* ret = malloc(sizeof(int) * 2);
                ret[0] = i, ret[1] = j;
                *returnSize = 2;
                return ret;
            }
        }
    }
    *returnSize = 0;
    return NULL;
}

为什么这两个一个要等与2 一个要等于0

因为for循环里表示找到两个数之和为target,所以返回这两个数,因此是2。而13行表示for循环中没有找到合适的数,所以并没有可返回的数对,因此返回数量为0