内容
给定一个非负整数 numRows,生成杨辉三角的前 *numRows *行。
image在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
思路
代码
/**
* @param {number} numRows
* @return {number[][]}
*/
var generate = function (numRows) {
if (numRows == 0) return [];
if (numRows == 1) return [
[1]
];
if (numRows == 2) return [
[1],
[1, 1]
];
var result = [
[1],
[1, 1]
];
var save = [1, 2, 1];
for (var i = 3; i <= numRows; i++) {
result.push(save.slice(0));
var newArray = [];
for (var j = 0; j < save.length - 1; j++) {
newArray.push(save[j] + save[j + 1]);
}
newArray.unshift(1);
newArray.push(1);
save = newArray;
}
return result;
};
网友评论