1
var minScoreTriangulation = function (values) {2
let dp = Array(values.length)4
.map((i) => Array(values.length).fill(0));6
if (dp[i][j]) return dp[i][j];7
if (j - i < 2) return 0;9
// k forms a triangle with i and j, thus bisecting the array into two parts10
// These two parts become two subproblems that can be solved recursively11
for (let k = i + 1; k < j; k++) {12
let sum = values[i] * values[j] * values[k] + dfs(i, k) + dfs(k, j);13
min = Math.min(min, sum);15
return (dp[i][j] = min);17
return dfs(0, values.length - 1);