Understand Minimum Number of Operations to Move All Balls to Each Box Problem

Problem: Minimum Number of Operations to Move All Balls to Each Box

You have n boxes represented as a binary string boxes, where:

  • '0' means the box is empty.
  • '1' means the box contains one ball.

You can move a ball from one box to an adjacent box in one operation. A box is adjacent if the difference in their indices is 1.

You need to calculate an array answer of size n where:

  • answer[i] is the minimum number of operations required to move all balls to the ith box, considering the initial positions of the balls.

Examples

Example 1:

Input:
boxes = "110"
Output:
[1, 1, 3]

Boxes

The number of operations required to move all balls to the 0th index box from the initial state = 1.

Boxes

The number of operations required to move all balls to the 1st index box from the initial state = 1.

Boxes

The number of operations required to move all balls to the 3rd index box from the initial state = 2.

Boxes

The total number of operations required to move all balls to each index box from the initial state is given by the array:

ans = [1, 1, 3]

Explanation:

  1. For the first box: Move one ball from the second box → 1 operation.
  2. For the second box: Move one ball from the first box → 1 operation.
  3. For the third box:
    • Move one ball from the first box → 2 operations.
    • Move one ball from the second box → 1 operation.
      Total = 3 operations.

Example 2:

Input:
boxes = "001011"
Output:
[11, 8, 5, 4, 3, 4]


Constraints

n=boxes.lengthn = \text{boxes.length} 1n20001 \leq n \leq 2000 boxes[i]{0,1}\text{boxes}[i] \in \{ 0 , 1 \}
Category:
  • Leetcode Problem of the Day
  • Arrays
  • Strings
Programming Language:
  • Java
Reference Link:

https://leetcode.com/problems/minimum-number-of-operations-to-move-all-balls-to-each-box/description/?envType=daily-question&envId=2025-01-06

Java
Output:

Loading component...

Loading component...