Remove Boxes
Real-world version: Carton Sweep ScoreThe statement here is our own: the same inputs, outputs and technique.
A conveyor carries a row of cartons, and cartons[i] is the colour code printed on the carton at position i.
You empty the conveyor one sweep at a time. A sweep picks any run of neighbouring cartons that all print the same colour code and lifts the whole run off, scoring k * k points where k is the number of cartons that sweep lifted. Everything still on the belt then closes up, so two cartons that were held apart only by the lifted run become neighbours.
Sweep until the belt is bare, and return the highest total score the sweeps can add up to.
Examples
Example 1
- Input
- cartons = [2,5,5,2]
- Output
- 8
Lifting the run of two 5s scores 4 and leaves the two 2s side by side, and lifting those as one run of two scores another 4, for 8.
Example 2
- Input
- cartons = [4,4,4,4]
- Output
- 16
All four cartons print the same code and already sit together, so one sweep of four scores 4 * 4 = 16.
Example 3
- Input
- cartons = [7]
- Output
- 1
One carton means one sweep of size 1, scoring 1 * 1 = 1.
Example 4
- Input
- cartons = [3,6,3,6,3]
- Output
- 11
Lifting the 6 at position 1 on its own scores 1, then the 6 now at position 2 scores another 1, and the three 3s left behind form one run for 9, giving 11.
Example 5
- Input
- cartons = [8,9,9,8,8]
- Output
- 13
Lifting the run of two 9s scores 4 and closes the three 8s into one run, which scores 9, giving 13.
Constraints
- 1 <= cartons.length <= 100
- 1 <= cartons[i] <= 100
The signature
The editor starts with this. It matches the parent problem's shape, so a solution that works here works on a standard judge unchanged.
def remove_boxes(cartons: list[int]) -> int:public int removeBoxes(int[] cartons)Checking your plan…
How this problem was checked
- Passed: Reference solution run against 13 test cases: 13 passed
- Passed: 5 worked examples confirmed by running the code
- Passed: 0 eight-word sequences shared with the parent problem's text
- Passed: Agrees with an independent brute-force solution on random inputs
- Passed: Test set shown to catch deliberately broken solutions
- Passed: Reviewed by a separate quality pass
- Passed: Function arity matches the parent problem's