LeetCode118. 杨辉三角

98 views次阅读
没有评论

给定一个非负整数 numRows,生成杨辉三角形的前 numRows行。 在杨辉三角中,每个数是它左上角和右上角之数的和。 示例: 输入:5 输出:

  [
      [1],
     [1,1],
    [1,2,1],
    [1,3,3,1],
   [1,4,6,4,1]
  ]

下面是解法:

  const generateTrangle (numRows) => {
    let arr = new Array(numRows); // 创建一个指定长度的数组
    for (let i = 0; i < numRows; i++) {
      arr[i] = new Array(i); // 创建对应长度的子数组
      for (let j = 0; j < i + 1; j++) {
        if (i === 0 || j ===0 || i === j) {
          arr[i][j] = 1; // 最左边和最右边的数总是为1
        } else {
          arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; // 当前数 = 其左上角和右上角之数的和
        }
      }
    }
    return arr;
  }
guxuerui
版权声明:本站原创文章,由guxuerui于2020年03月29日发表,共计677字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Loading...