1
var mctFromLeafValues = function (arr) {4
for (let i = 0; i < arr.length; i++) {8
return treeBuilder(0, arr.length - 1);10
function treeBuilder(start, end) {16
return dp[start][end];19
let min = Number.MAX_VALUE;21
for (let i = start; i < end; i++) {22
const left = treeBuilder(start, i);23
const right = treeBuilder(i + 1, end);25
const maxLeft = Math.max(...arr.slice(start, i + 1));26
const maxRight = Math.max(...arr.slice(i + 1, end + 1));28
const rootVal = maxLeft * maxRight;30
min = Math.min(min, rootVal + left + right);