给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例1:
输入: 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) {
};
个人解法
var generate = function(numRows) {
var result = [];
while(result.length !== numRows){
if(result.length === 0){
result.push([1]);
}else if(result.length === 1){
result.push([1,1]);
}else{
var arr = [];
//除了最左和最右的1,其他元素都是它左上方和右上方的数的和
for(var i = 1; i < result.length; i++){
arr.push(result[result.length - 1][i] + result[result.length - 1][i - 1]);
}
//最左和最右加上1
arr.push(1);
arr.unshift(1);
result.push(arr);
}
}
return result;
};