int** generate(int numRows, int* returnSize, int** returnColumnSizes)
{
int** ret = (int **)malloc(sizeof(int*) * numRows);//ret接收
*returnSize = numRows;
*returnColumnSizes = (int *)malloc(sizeof(int) * numRows);
for (int i = 0; i < numRows; ++i)
{
ret[i] = (int*)malloc(sizeof(int) * (i + 1));
(*returnColumnSizes)[i] = i + 1;
ret[i][0] = ret[i][i] = 1;
for (int j = 1; j < i; ++j)
{
ret[i][j] = ret[i - 1][j] + ret[i - 1][j - 1];
}
}
return ret;
}
这段代码是leecode的第118题,看不懂第4行和第9行是拿来干嘛的。尤其是哪个returnSize,看不懂T T。
刚开始做leecode的悲伤
4行:函数返回的是ret,这个是ret指针数组元素的个数。
ret是个二维数组,行数是numRows,每一行的长度不一样,长度为i+1,每一行的长度保存到数组returnColumnSizes里,形参returnColumnSizes用int **是为了把指针值带出函数。