题目描述
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
思路&js代码
1、数学
var generate = function(numRows) {
const ret = [];
for (let i = 0; i < numRows; i++) {
const row = new Array(i + 1).fill(1);
for (let j = 1; j < row.length - 1; j++) {
row[j] = ret[i - 1][j - 1] + ret[i - 1][j];
}
ret.push(row);
}
return ret;
};2、
var generate = function (numRows) {
const result = []
for (let row = 0; row < numRows; row++) {
const prevRow = result[row - 1]
const currRow = []
for (let j = 0; j <= row; j++) {
if (j === 0 || j === row) {
currRow.push(1)
continue
}
const num1 = prevRow[j - 1]
const num2 = prevRow[j]
currRow.push(num1 + num2)
}
result.push(currRow)
}
return result
};