问题描述如下:
提示中前三个是变量的范围,也就是系统调用接口的时候给的参数只会在这个范围内。
最后一行的意思就是,例如[1,2,3,-1,-2],如果求和为1的结果则会有 两组答案[2,-1],[3,-2],题目中是不会存在这样的情况,只会有一组符合最终答案
#include <stdio.h>
#include <stdlib.h>
int *twosum(int *nums, int numSize, int target, int* returnSize)
{
int i, j;
int *ret = ⌖
for (i = 0; i < numSize; i++) {
for (j = i; j < numSize; j++) {
if (target == (nums[i] + nums[j])) {
returnSize[0] = i;
returnSize[1] = j;
return ret;
}
}
}
if (i == j) {
returnSize[0] = -1;
returnSize[1] = -1;
printf("No Match for the target\n");
}
return ret;
}
int main(int argc, char *argv[])
{
int nums[] = {2,7,11,15};
int returnSize[2] = {0};
int *ret = twosum(nums, sizeof(nums), 18, returnSize);
printf("target: %d, return size: [%d, %d]\n", *ret, returnSize[0], returnSize[1]);
return 0;
}
有帮助的话采纳一下哦!