Skip to content

Commit 12e56cc

Browse files
authored
Update 956-tallest-billboard.js
1 parent 5fa5820 commit 12e56cc

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

956-tallest-billboard.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
/**
2+
* @param {number[]} rods
3+
* @return {number}
4+
*/
5+
const tallestBillboard = function(rods) {
6+
const sum = rods.reduce((ac, e) => ac + e, 0)
7+
const dp = Array(sum + 1).fill(-1), { abs, max, min } = Math
8+
dp[0] = 0
9+
for(const e of rods) {
10+
const bak = dp.slice()
11+
for(let delta = 0; delta <= sum; delta++) {
12+
if(bak[delta] < 0) continue
13+
if(delta + e <= sum) dp[delta + e] = max(dp[delta + e], bak[delta])
14+
dp[abs(delta - e)] = max(dp[abs(delta - e)], bak[delta] + min(e, delta))
15+
}
16+
}
17+
18+
19+
return dp[0]
20+
};
21+
22+
23+
// another
24+
25+
126
/**
227
* @param {number[]} rods
328
* @return {number}

0 commit comments

Comments
 (0)