今天这篇比较水,不过本文要讲的内容是我曾经遇到过的问题,也可能是大部分人在初次接触力扣时的一些疑问。当时遇到这个问题也是上网找了许久没有找到满意的答案,现在自己明白了,也希望能够帮助还抱有疑惑的各位解答。
如果我说的有误,烦请在评论区指出,我会立马纠正
在力扣上做题时,有时候会看到题目中的参数里有个returnSize,有时还有returnColumnSize
这时候有人就开始犯蒙了:这两个参数是个啥意思啊?
例如比较经典的杨辉三角:118. 杨辉三角 - 力扣(LeetCode)
其中,代码框里的函数参数中就有这两货
首先先给出答案:returnSize是我们要返回的数组的大小
如果返回的是二维数组,往往函数中还有returnColumnSize参数,例如上面的杨辉三角就要求我们返回一个二维数组,这个二维数组中的第一行对应杨辉三角的第一行,以此类推
returnColumnSize是指向一个数组的指针的地址,指向的这个数组用来存储二维数组中每一行的元素个数,而通过returnColumnSize我们就可以修改指针的指向
简单来说,如果返回一个二维数组,我们需要在函数中自己开一个新数组来存储二维数组的每一行的大小,例如上面的杨辉三角:
然后通过returnColumnSize就能修改指针的指向,让其指向我们开的这个新数组,并在函数中对数组赋值来保存二维数组中每一行的大小
再简单来说,你可以把力扣想的笨一点,它不知道你返回的数组有多大,如果是二维数组,它就不知道有多少行、每行有多少个元素,这些都需要你在函数中对returnSize和returnColumnSize进行操作,来让它知道具体的值,才好进行测试
而returnSize和returnColumnSize这样的参数,称为输出型参数
为什么需要我们手动去修改这些参数呢?因为力扣在测试时往往是很多道题用同一份代码进行测试,我们只是在函数中写代码,写好后函数就在测试代码中运行。这么多道题,每个题返回的数组大小都不相同,所以就需要我们来自己给出数组的大小了。
而且像杨辉三角这种,返回的二维数组每行的个数都还不一样,对于其他的题目都有可能发生这种情况,也需要我们自己给出。