观察可知每个嵌套数组中除首末两项之外(判断处理这两种特殊情况即可),中间的值都由上一个数组的当前索引项和前一索引项相加,
例如:bakcs[3][1]=backs[2][1]+backs[2][0]或者bakcs[4][2]=backs[3][2]+backs[3][1],
故可用双指针法得出算法:backs[i][j]=backs[i-1][j-1]+backs[i-1][j]
/**
@param {number} numRows
@return {number[][]}
*/
var generate = function(numRows) {
let backs=[]
for(let i=0;i<numRows;i++){
backs[i]=[1]
for(let j=1;j<=i;j++){
if(i===j){
backs[i].push(1)
continue
}
backs[i][j]=backs[i-1][j-1]+backs[i-1][j]
}
}
return backs
};