LeetCode中函数题中“多出来的参数“---returnsize

转载:关于returnSize

第一次在leetcode上瞎逛就遇到了就遇到了它~

int* twoSum(int* nums, int numsSize, int target, int* returnSize)

     
     
     
     
  • 1

这个代码的实现并不是什么难解的方法(用上两个循环也就解决问题了,当然也有更好的方法但是这不是这篇Blog讨论的主题),但是执行代码的时候控制台总是会告诉我代码执行错误,或者出一些奇奇怪怪的东西。

类型 提示
错误一 solution.c: In function 'main’Line 61: Char 20: error: too many arguments to function ‘twoSum’
错误2 预期结果为"[0,1]" , 而实际输出结果为"]"

错误1:我从网上找到一些解决这题的方法,照猫画虎,结果,会出现此类错误;

我认为,此类问题的原因是将twoSum中的returnSize参数直接删除的缘故。因为在后面的main函数(我们不被要求编写的部分)中调用了twoSum函数而且在那里确有returnSize的参数这就是"too many"的原因。

错误2:

观察实际输出和预期的输出可以发现,int* returnSize 其实是输出的值的个数,故我们要对其进行赋值。
错误2的原因是因为没有对其进行赋值。
下面是赋值分别为0,1,2,3时的控制台展示:

赋值大小 实际输出 预期输出
0 [] [0,1]
1 [0] [0,1]
2 [0,1] [0,1]

而赋值为3时,“执行出错”LeetCode中函数题中“多出来的参数“---returnsize_第1张图片

所以赋值的大小要不大不小刚刚好,至于此处为什么是2,就很明显了吧~ 【此题为1.两数之和】

写在最后

确是花费了好多时间,走了很多弯路。希望新手不要走我走过的弯路(一些CSDN上的文章确实让我花了好多的心思去研究,结果发现,嗯,不行)。


既然解决了returnSize的问题,不如把我们马上会遇到returnColumnSize也一并解决了吧。点击传送门,看博主如何用一套骚话解释Leetcode中的returnColumnsizes为何物?

你可能感兴趣的:(LeetCode,C/C++)