简单给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
/**
* @param {number} numRows
* @return {number[][]}
*/
var generate = function (numRows) {
if (numRows === 1) {
return [[1]];
} else if (numRows === 2) {
return [[1], [1, 1]];
} else if (numRows === 3) {
return [[1], [1, 1], [1, 2, 1]];
}
const ans = [[1], [1, 1], [1, 2, 1]];
const t = [];
for (let i = 3; i < numRows; i++) {
for (let j = 0; j < ans[i - 1].length - 1; j++) {
const x = ans[i - 1][j] + ans[i - 1][j + 1];
t.push(x);
}
t.unshift(1);
t.push(1);
ans.push(t.splice(0, i+1));
}
return ans;
};