
给定一个非负整数numRows生成「杨辉三角」的前numRows行。在「杨辉三角」中每个数是它左上方和右上方的数的和。示例 1:输入:numRows 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入:numRows 1输出:[[1]]提示:1 numRows 30function generate(numRows: number): number[][] { //定义一个二维数组数组嵌套数组 const res:number[][][] //第一层有几个数组 //例如第一个[1]、第二个[1,1]、第三个[1,2,1] //res:[[1],[1,1],[1,2,1]] for(let i0;inumRows;i){ //i是有几个数组 //item每个子数组里的值 //new Array(i1) 这个参数是新数组的长度 //.fill(1) 是新数组初始填充为1例如new Array(5).fill(1)[1,1,1,1,1] const item:number[] new Array(i1).fill(1) //j是从下标为1开始的新数组里的值 //当j0和ji的时候就是首尾都是1不变 for(let j1;ji;j){ //res[i-1]表示上一层 //[j-1]表示j左边[j]表示j的右边 item[j]res[i-1][j-1]res[i-1][j] } //数组末尾添加元素 res.push(item) } return res };来个无注释版的function generate(numRows: number): number[][] { const res:number[][][] for(let i0;inumRows;i){ const item:number[] new Array(i1).fill(1) for(let j1;ji;j){ item[j]res[i-1][j-1]res[i-1][j] } res.push(item) } return res };共勉