Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 934 Bytes

118. 杨辉三角.md

File metadata and controls

52 lines (40 loc) · 934 Bytes

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

img

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

示例:

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

思路

找出规律:res[i][j] = res[i-1][j-1] + res[i-1][j]

代码

/**
 * @param {number} numRows
 * @return {number[][]}
 */
var generate = function(numRows) {
  if (!numRows) return [];
  const res = [[1]];
  for(let i = 1; i < numRows; i ++) {
    let path = []
    for(let j = 0; j <= i; j ++) {
      path[j] = (res[i-1][j-1] || 0) + (res[i-1][j] || 0)
    }
    res.push(path)
  }
  return res;
};

复杂度分析

时间复杂度 $O(N^2)$

空间复杂度 $O(1)$