Print Pascal's Triangle - Memoized
by Hari Menon
JavaScript
var cache = [];
function value(row, index) {
if (cache[row] && cache[row][index] !== undefined) {
return cache[row][index];
}
if (index < 0 || index > row) {
return 0;
}
if (index === 1 || index === row) {
return 1;
}
var result = value(row - 1, index - 1) + value(row - 1, index)
if (cache[row] === undefined) {
cache[row] = [];
}
cache[row][index] = result;
return result;
}
function row(n) {
var r = [];
for (var i = 1; i <= n; i++) {
r.push(value(n, i));
}
return r;
}
function pascalsTriangle(n) {
for (var i=1; i <= n; i++) {
console.log(row(i));
}
}
pascalsTriangle(20);