-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPascalsTriangle.js
More file actions
35 lines (31 loc) · 915 Bytes
/
Copy pathPascalsTriangle.js
File metadata and controls
35 lines (31 loc) · 915 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"use strict"
/**
* @param {number} numRows
* @return {number[][]}
*/
/* Results
Runtime: 49 ms, faster than 99.45% of JavaScript online submissions for Pascal's Triangle.
Memory Usage: 42.3 MB, less than 20.43% of JavaScript online submissions for Pascal's Triangle.
*/
var generate = function (numRows) {
//return for 1
if (numRows === 1) return [[1]];
//calculate for rest
let result = [[1], [1, 1]];
if (numRows === 2) return result;
for (let row = 3; row <= numRows; row++) {
let template = Array(0, ...result[row - 2], 0);
let temp = [];
for (let x = 0, y = 1; y < template.length; x++, y++) {
let num = template[x] + template[y];
temp.push(num);
}
result.push(temp);
}
return result;
};
(function main() {
// console.log(generate(1));
// console.log(generate(2));
console.log(generate(4));
}())