int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
for (int i = 0; i < numsSize; ++i) {
for (int j = i + 1; j < numsSize; ++j) {
if (nums[i] + nums[j] == target) {
int* ret = malloc(sizeof(int) * 2);
ret[0] = i, ret[1] = j;
*returnSize = 2;
return ret;
}
}
}
*returnSize = 0;
return NULL;
}
作者:力扣官方题解
链接:https://leetcode.cn/problems/two-sum/solutions/434597/liang-shu-zhi-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
重新开始刷C语言结果指针都忘完了,像力扣这样的刷题和学校用的PTA还是有很大区别的,力扣不用写头文件和主函数可是刚上手看他给的函数还是有点懵逼。
这个官方解的*returnSize是确认输出的数组长度,若题目可以成功找的两项数组和为target,那输出肯定是两个数组,所有把*returnSize赋值为2,然后下面的找不到的情况下*returnSize=0可以去掉,因为找不到returnNULL用不到ret数组。
简简单单去掉一行代码叭。