Burst Balloons LeetCode solution in JavaScript
1var rec = function (i, j, arr, dp) {2if (i > j) return 0;3if (dp[i][j] !== -1) return dp[i][j];4let max = Number.MIN_VALUE;5for (let k = i; k <= j; k++) {6let cost =7arr[i - 1] * arr[k] * arr[j + 1] +8rec(i, k - 1, arr, dp) +9rec(k + 1, j, arr, dp);10if (cost > max) {11max = cost;12}13}14return (dp[i][j] = max);15};16var maxCoins = function (nums) {17let n = nums.length;18let sol = [];19for (let i = 0; i < n + 1; i++) {20sol[i] = Array(n + 1).fill(-1);21}22nums.unshift(1);23nums.push(1);24return rec(1, n, nums, sol);25};