首先定义函数,需要给的值有 nums target 数组长度numsSize 以及返回的的俩个值int*returnSize
定义函数名称为 int*twosum(int*nums,int numsSize,int target,int *returnSize)
下面来看看函数主体怎么编译吧!
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
int * ret = NULL;//定义空指针ret
for (int i = 0; i < numsSize; ++i)//用for循环的嵌套来计算数组的俩数之和,这里的++i和下面的++j前缀和后缀并无关系
{
for (int j = i + 1; j < numsSize; ++j)
{
if (nums[i] + nums[j] == target) //与target的值进行比较
{
int* ret = (int*)malloc(sizeof(int) * 2);//开辟空间用来存储下标,前面的int*是强制定义int类型
ret[0] = i, ret[1] = j;
*returnSize = 2;//这个地方的2我的理解是给俩个空间来贮存俩个下标,说实话我也不太理解
return ret; //返回下标
}
}
}
*returnSize = 0;
return NULL;
}
然后利用次函数进行完整代码的编译