问题描述:
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
提交代码思路:
观察每行与前一行的关系,可以发现后一行比前一行多1个数字,并且位置关系也是明确的,并且是一个对称的数组。
提交代码如下:
/**
* Return an array of arrays.
* The sizes of the arrays are returned as *columnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/
int** generate(int numRows, int** columnSizes) {
if(numRows<=0 || columnSizes==NULL)
{
return NULL;
}
int** result=(int**)malloc(sizeof(int*)*numRows);//返回二维数组