Pascal's-Triangle

title

image

Wikipedia article on Pascal’s Triangle: http://en.wikipedia.org/wiki/Pascal’s_triangle

example

1
pascalsTriangle(4) == [1,1,1,1,2,1,1,3,3,1]

My solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function pascalsTriangle(n) {
//return a flat array representing the values of Pascal's Triangle to the n-th level
var result = [];
var partPre = [];
for(var i = 1;i<=n;i++){
var part = Array(i).fill(1);
for(var j = 1;j<i-1;j++){
part[j] = partPre[j]+partPre[j-1];
}

partPre = [].concat(part);
result = result.concat(part);
}
return result;
}

good solution

1
2
3
4
5
6
7
8
9
10
11
12
function pascalsTriangle(n) {
if (n === 1) {
return [1];
}
var prev = pascalsTriangle(n - 1), len = prev.length;
prev.push(1);
for (var i = len - n + 1; i < len - 1; i ++) {
prev.push(prev[i] + prev[i + 1]);
}
prev.push(1);
return prev;
}