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题杨辉三角,第四行是干嘛用的?比较急
第四行是用来放放回数组的元素个数的,LeetCode上做题的方式需要这样
你是说 * returnColumnSizes = (int * )malloc(sizeof(int) * numRows); 吗?
这是给返回值分配空间啊,杨辉三角的结果是个二维数组,这是给二维数组动态分配空间的。
这一行就是分配numRows个int * 指针空间。然后在下面的循环中再给每个int * 分配空间