给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
int k = 0;
int j;
for (k = 0; k < numsSize; k++) {
for (j = k + 1; j < numsSize; j++) {
if (nums[k] + nums[j] == target) {
int* result = (int*)malloc(2 * sizeof(int));
result[0] = k;
result[1] = j;
*returnSize = 2;
return result;
}
}
}
*returnSize = 0;
return NULL;
}
注意:* Note: The returned array must be malloced, assume caller calls free().题目中给了这样一段话
所以我们需要设置*returnSize的长度
如果没有设置会输出不出来
- 在缺少
returnSize
参数的情况下,调用者无法得知返回的数组到底包含几个元素。因为仅仅返回一个整数指针,调用者没有办法确切知道应该读取多少个有效元素。 - 这可能导致调用者在处理返回结果时出现错误,可能读取过多或过少的元素,从而产生不可预期的结果。