Skip to main content

Pascal's Triangle

Problem statement​

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 = 5Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

Input: numRows = 1Output: [[1]]

Constraints:

  • 1 <= numRows <= 30

My solution​

/**
* @param {number} numRows
* @return {number[][]}
*/
var generate = function(numRows) {
let result = [];
let prevRow;

for (let i = 1; i <= numRows; i++) {
const row = Array.from({
length: i
}, () => 1)

if (prevRow) {
for (let j = 1; j < prevRow.length; j++) {
row[j] = prevRow[j] + prevRow[j - 1];
}
}

prevRow = row;
result.push(row)
}

return result;
};