Why am I getting a type error Cannot read property '0' of undefined here? Also how can I have full control of whether I am passing things by reference or by value? I am not able to find how to do this anywhere? There must be some flip I have to switch to allow this. Having to remember whether it is passed by reference or value by default is getting really annoying.
function lineOfWines(wines) {
let memo = new Array(wines.length)
for (let i = 0; i < memo.length; i++) {
memo[i] = new Array(wines.length).fill(null);
}
return lineOfWinesHelper(0, 0, wines, memo);
}
function lineOfWinesHelper(L, R, wines, memo) {
if (L + R == wines.length) {
return 0;
}
if (memo[L][R] !== null) {
return memo[L][R];
}
sellLeft = (L + R + 1) * wines[L] +
lineOfWinesHelper(L + 1, R, wines, memo);
sellRight = (L + R + 1) * wines[wines.length - 1 - R] +
lineOfWinesHelper(L, R + 1, wines, memo);
memo[L][R] = Math.max(sellLeft, sellRight);
return memo[L][R];
}
function main() {
console.log(lineOfWines([1, 1]));
}
main();