- 历程
在一个数组中找出两个数相加等于target,不就是遍历数组两个循环暴力解决就好了嘛,很简单,但是报错,找到答案也是和我的逻辑也是一样的,他们能过,我就报错???
后来发现网上的答案普遍没有出现*returnSize,而题目给我的函数中有这个变量,我把它当作返回的数组用的,显示的大概是数组越界
所以我就自己重新新建数组并返回,没有用到*returnSize的值,还是报错 - 解决
尝试在函数中返回数组returnSize的值观察,返回的是数字0,猜测存储的是返回数字的数量,于是将存储的数字改为2,成功
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
*returnSize=2;
static int a[2]; //*a = (int*)malloc(2 * sizeof(int))
int i,j;
for(i=0; i<numsSize-1; i++){
for(j=i+1; j<numsSize; j++){
if(nums[i]+nums[j] == target){
a[0]=i;
a[1]=j;
return a;
}
}
}
return 0;
}