Skip to content

Commit f671ebe

Browse files
authored
Create 312-burst-balloons.js
1 parent c39cdbe commit f671ebe

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

312-burst-balloons.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
const maxCoins = iNums => {
6+
const nums = new Array(iNums.length + 2);
7+
let n = 1;
8+
for (let x of iNums) if (x > 0) nums[n++] = x;
9+
nums[0] = nums[n++] = 1;
10+
11+
const memo = Array.from({ length: n }, () => new Array(n));
12+
return burst(memo, nums, 0, n - 1);
13+
};
14+
15+
function burst(memo, nums, left, right) {
16+
if (left + 1 === right) return 0;
17+
if (memo[left][right] > 0) return memo[left][right];
18+
let ans = 0;
19+
for (let i = left + 1; i < right; ++i)
20+
ans = Math.max(
21+
ans,
22+
nums[left] * nums[i] * nums[right] +
23+
burst(memo, nums, left, i) +
24+
burst(memo, nums, i, right)
25+
);
26+
memo[left][right] = ans;
27+
return ans;
28+
}

0 commit comments

Comments
 (0)