【一天一大 lee】杨辉三角 (难度:简单) - Day20201206

2020-12-17 11:28:29 浏览数 (1)

20201206

题目:

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

杨辉三角

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

示例:

代码语言:javascript复制
输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

抛砖引玉

思路:

模拟两遍循环

杨辉三角:是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。

抛砖引玉

按层填充:

  • 每层数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1
  • 第 i 层的数字有 i 1 项
  • 每一层等于上一层相邻的两个元素的和
代码语言:javascript复制
/**
 * @param {number} numRows
 * @return {number[][]}
 */
var generate = function(numRows) {
    let _result = []
    for (let i = 0; i < numRows; i  ) {
        // 每层元素数量 1
        const row = new Array(i   1).fill(1)
        for (let j = 1; j < row.length - 1; j  ) {
            // 值为:上一层相邻的两个元素的和
            row[j] = _result[i - 1][j]   _result[i - 1][j - 1]
        }
        _result.push(row)
    }
    return _result
}

博客: 前端小书童

每天的每日一题,写的题解会同步更新到公众号一天一大 lee 栏目 欢迎关注留言

公众号:前端小书童

0 人点赞