js(107)~118. 杨辉三角-递推

195 阅读1分钟

118. 杨辉三角

image.png

这个题准确来说是用的递推,没有用到动态规划,动态规划比递推 多了一个决策的过程,这个没有决策的过程, 解题思路就是按照杨辉三角的特性从第一行,一行一行的往下递推

var generate = function(numRows) {
    const res = [];
    // i 表示行 j表示列
    for(let i = 0; i < numRows; i ++) {
        // 看上面的例子数组,第0行1个元素,第1行2个元素,第2行3个元素....
        const row = new Array(i + 1).fill(1);
         // 这里j从1开始到row.length-2结束  是因为每一行的第一个和最后一个其实是不需要算的,因为已经默认为1了,只有中间的才需要算
        for( let j = 1; j < row.length - 1  ; j ++ ) {
            row[j] = res[i-1][j-1] + res[i-1][j];
        }

        res.push(row)
    }
    return res;
};