Triple Steps - CtCI 8.1
by Hari Menon
HTML
<pre id="output"></pre>
JavaScript
function fillArrayWithValues(count, value) {
var arr = Array.apply(null, Array(count));
return arr.map(function () {
return value;
});
}
function countWays(n, memo) {
if (!memo) {
memo = fillArrayWithValues(n + 1, -1);
}
if (n < 0) {
return 0;
} else if (n === 0) {
return 1;
} else if (memo[n] > -1) {
return memo[n];
} else {
memo[n] = countWays(n - 1, memo) + countWays(n - 2, memo) + countWays(n - 3, memo);
console.debug(memo);
return memo[n];
}
}
document.querySelector('#output').innerHTML = countWays(6);