好像记得在以前刚学算法,好像是递归的时候学到过这个三角形,所以第一眼看到想用递归做,又感觉好像不对劲,看了看题解发现没人用递归做
杨辉三角规律就是从第三行开始,除了第一和最后一个值 中间的值都是上一行的行数+行数-1 也是 这个值的位数+位数-1
即 answer[i-2][s-1] + answer[i-2][s-2]
i 为当前的行数 上一行-1 索引-1 所以为-2
s为当前行要求的第n个元素 然后因为是索引 -1
说的比较乱,写的也很菜…
/**
* @param {number} numRows
* @return {number[][]}
*/
var generate = function(numRows) {
if (numRows == 0 ) return []
if (numRows == 1 ) return [[1]]
let answer = [[1], [1,1]]
if (numRows == 2 ) return answer
for (let i = 3; i <= numRows; i++) {
let newarr = []
for (let s = 2; s < i; s++) {
newarr.push(answer[i-2][s-1] + answer[i-2][s-2])
}
newarr.unshift(1)
newarr.push(1)
answer.push(newarr)
}
return answer
};