【leetcode】杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

 

int** generate(int numRows, int* returnSize, int** returnColumnSizes){
    *returnSize = numRows;
    int** arr = (int**)calloc(numRows,sizeof(int*));
    for (int i=0; i<numRows; i++)
    {
        arr[i] = (int*)calloc(i+1,sizeof(int*));
        (*returnColumnSizes)[i] = i+1;
        for (int j=0; j<i+1; j++)
        {
            if (j==0 || j==i)
            {
                arr[i][j] = 1;
                continue;
            }
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    }
    return arr;
}

 

posted @ 2020-09-13 14:13  温暖了寂寞  阅读(137)  评论(0编辑  收藏  举报