Title: #546 - Remove Boxes - LeetCode JavaScript Solutions
Open Graph Title: #546 - Remove Boxes - LeetCode JavaScript Solutions
X Title: #546 - Remove Boxes - LeetCode JavaScript Solutions
Description: You are given several boxes with different colors represented by different positive numbers. You may experience several rounds to remove box...
Open Graph Description: You are given several boxes with different colors represented by different positive numbers. You may experience several rounds to remove box...
X Description: You are given several boxes with different colors represented by different positive numbers. You may experience several rounds to remove box...
Keywords:
Opengraph URL: https://leetcodejavascript.com/solutions/remove-boxes
Domain: leetcodejavascript.com
{"@context":"https://schema.org","@type":"Code","url":"https://leetcodejavascript.com/solutions/remove-boxes","name":"#546 - Remove Boxes - LeetCode JavaScript Solutions","description":"You are given several boxes with different colors represented by different positive numbers. You may experience several rounds to remove box...","programmingLanguage":"JavaScript","codeRepository":"https://github.com/JoshCrozier/leetcode-javascript","codeSampleType":"JavaScript","text":"/**\n * @param {number[]} boxes\n * @return {number}\n */\nvar removeBoxes = function(boxes) {\n const dp = new Array(boxes.length).fill().map(() => {\n return new Array(boxes.length).fill().map(() => new Array(boxes.length + 1).fill(0));\n });\n return dfs(0, boxes.length - 1, 0);\n\n function dfs(l, r, k) {\n if (l > r) return 0;\n if (dp[l][r][k]) return dp[l][r][k];\n let i = l;\n let count = k + 1;\n while (i < r && boxes[i] === boxes[i + 1]) {\n i++;\n count++;\n }\n let max = count * count + dfs(i + 1, r, 0);\n for (let m = i + 1; m <= r; m++) {\n if (boxes[l] === boxes[m]) {\n max = Math.max(max, dfs(i + 1, m - 1, 0) + dfs(m, r, count));\n }\n }\n return dp[l][r][k] = max;\n }\n};","keywords":"LeetCode 546, #546 - Remove Boxes, Hard, JavaScript solution","learningResourceType":"Code","isAccessibleForFree":true,"educationalLevel":"intermediate","interactivityType":"mixed"}
| author | LeetCodeJavascript.com |
| og:type | article |
| og:image | https://leetcodejavascript.com/og-image.jpg |
| og:site_name | LeetCode JavaScript Solutions |
| twitter:card | summary_large_image |
| twitter:url | https://leetcodejavascript.com/solutions/remove-boxes |
| twitter:image | https://leetcodejavascript.com/og-image.jpg |
| twitter:creator | @joshcrozier |
| theme-color | #1f2937 |
Links:
| LeetCodeJavascript.com | https://leetcodejavascript.com/ |
| Star on GitHub | https://github.com/JoshCrozier/leetcode-javascript |
| Back to all solutions | https://leetcodejavascript.com |
| View on LeetCode | https://leetcode.com/problems/remove-boxes/ |
| View on GitHub | https://github.com/JoshCrozier/leetcode-javascript/blob/master/solutions/0546-remove-boxes.js |
| Array | https://leetcodejavascript.com/tags/array |
| Dynamic Programming | https://leetcodejavascript.com/tags/dynamic-programming |
| Memoization | https://leetcodejavascript.com/tags/memoization |
| Josh Crozier | https://joshcrozier.com |
Viewport: width=device-width, initial-scale=1.0
Robots: index, follow