Two Sum,这个题还是比较容易的,放在第一题,刚好熟悉适应一下leetcode的出题规则,了解出题人的用意。解释一下returnSize,这个地方用指针,说明这个值在main函数中有用(这里简单认为是main函数调用twoSum函数),该值的作用就是在返回数组中确定有效的输出区间(只用给出上限,下限默认为数组小标0),说白了就是最终printf哪些项,验证输出结果是否正确。
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i, j;
int* result=NULL;
for (i = 0; i<numsSize; i++)
for (j = i + 1; j < numsSize; j++)
if (*(nums + i) + *(nums + j) == target)
{
result=(int*)malloc(2*sizeof(int));
result[0] = i;
result[1] = j;
*returnSize=2;
return result;
}
*returnSize=0;
return result;
}
若有错误的话,希望大神指出,小白在此万分感谢。