Given an integer numRows
, return the first numRows of Pascal’s triangle.
In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown:
Example 1:
Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Example 2:
Input: numRows = 1 Output: [[1]]
Constraints:
1 <= numRows <= 30
Solution:
/**
* @param {number} numRows
* @return {number[][]}
*/
var generate = function(numRows) {
let res = [[1]];
while(numRows > 1) {
let previous = res[res.length - 1];
// The first row element is always 1.
let cur = [1];
for (let i = 1; i < previous.length; i++) {
// generate: sum of the elements above-and-to-the-left and above-and-to-the-right.
cur.push(previous[i - 1] + previous[i]);
}
// The last row element is always 1.
cur.push(1);
res.push(cur.concat());
numRows--;
}
return res;
};