Burst Balloons LeetCode solution in JavaScript

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0