118. Pascal's Triangle( Java

2018-11-29  本文已影响8人  f1a94e9a1ea7

给一个数值,比如 5,输出如下三角形数组:

[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解析:

/**
 * @param {number} numRows
 * @return {number[][]}
 */
let getRow = (prevRow, i) => {
    if(i == 0){
        return [1];
    }

    if(i == 1){
        return [1,1];
    }
    //  这里是新的一行的第一项
    let newRow = [1];
    // 所以这里得出的值是从新的一行的第二项开始
    for(let i = 0; i < prevRow.length-1; i++){
        // 而第二项是上一行的第一项 + 第二项 
        newRow.push(prevRow[i] + prevRow[i+1])
    }
    newRow.push(1);
    return newRow;
}

let generate = (numRows) =>{
    let toReturn = [];  
    for(let i = 0; i < numRows; i++){
        let prevRow = toReturn[i-1];
        let currentRow = getRow(prevRow, i);
        toReturn.push(currentRow);
    }
    return toReturn;
}
上一篇下一篇

猜你喜欢

热点阅读