var minCostClimbingStairs = (cost, i = cost.length, memo = new Map()) => {
// debugger;
if (i <= 1) return 0;
if (memo.has(i)) return memo.get(i);;
const [ prev, prevPrev ] = [ (i - 1), (i - 2) ];
const downOne = minCostClimbingStairs(cost, prev, memo) + cost[prev];
const downTwo = minCostClimbingStairs(cost, prevPrev, memo) + cost[prevPrev];
memo.set(i, Math.min(downOne, downTwo));
return memo.get(i);
}
console.log(minCostClimbingStairs([20, 10, 40, 5]));
when we hit base case it returns 0;
but the function returning 15 in the end that means the function can access index 1
[20, 10, 40, 5]
The result is 10 + 5
so that is 15
10 is in index 1 ..that's what confusing me
So I don't know how this recursion goes