题目:
解题思路:
在解决这个问题之前,首先要明确两个点:
1、参数returnSize的含义是返回答案的大小(数目),由于这里的需求是寻找数组中符合条件的两个数,那么当找到这两个数时,将*returnSize的值直接赋为2。
2、不要忽略注释中的注意点,返回的是两个数组成的数组,那么就需要在本函数中为该数组动态开辟空间,使得返回内容可以在该函数外使用。
题目中要求不能使用两次相同的元素,对这句话的理解是,返回的两个符合条件的数,其下标应该是不同的。那么就要在嵌套循环进行遍历时,避免内外循环遍历到相同下标的元素。
代码:
int *twoSum(int *nums, int numsSize, int target, int *returnSize)
{int i,j;int *returnNum = (int *)malloc(sizeof(int)*2);for(i = 0; i < numsSize; i++){for(j = i+1; j < numsSize; j++){if(nums[i] + nums[j] == target){returnNum[0] = i;returnNum[1] = j;*returnSize = 2;}}}return returnNum;
}