1742. Maximum Number of Balls in a Box LeetCode Solution

In this guide, you will get 1742. Maximum Number of Balls in a Box LeetCode Solution with the best time and space complexity. The solution to Maximum Number of Balls in a Box problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.

Table of Contents

  1. Problem Statement
  2. Complexity Analysis
  3. Maximum Number of Balls in a Box solution in C++
  4. Maximum Number of Balls in a Box solution in Java
  5. Maximum Number of Balls in a Box solution in Python
  6. Additional Resources
1742. Maximum Number of Balls in a Box LeetCode Solution image

Problem Statement of Maximum Number of Balls in a Box

You are working in a ball factory where you have n balls numbered from lowLimit up to highLimit inclusive (i.e., n == highLimit – lowLimit + 1), and an infinite number of boxes numbered from 1 to infinity.
Your job at this factory is to put each ball in the box with a number equal to the sum of digits of the ball’s number. For example, the ball number 321 will be put in the box number 3 + 2 + 1 = 6 and the ball number 10 will be put in the box number 1 + 0 = 1.
Given two integers lowLimit and highLimit, return the number of balls in the box with the most balls.

Example 1:

Input: lowLimit = 1, highLimit = 10
Output: 2
Explanation:
Box Number: 1 2 3 4 5 6 7 8 9 10 11 …
Ball Count: 2 1 1 1 1 1 1 1 1 0 0 …
Box 1 has the most number of balls with 2 balls.
Example 2:

Input: lowLimit = 5, highLimit = 15
Output: 2
Explanation:
Box Number: 1 2 3 4 5 6 7 8 9 10 11 …
Ball Count: 1 1 1 1 2 2 1 1 1 0 0 …
Boxes 5 and 6 have the most number of balls with 2 balls in each.

Example 3:

Input: lowLimit = 19, highLimit = 28
Output: 2
Explanation:
Box Number: 1 2 3 4 5 6 7 8 9 10 11 12 …
Ball Count: 0 1 1 1 1 1 1 1 1 2 0 0 …
Box 10 has the most number of balls with 2 balls.

Constraints:

1 <= lowLimit <= highLimit <= 105

Complexity Analysis

  • Time Complexity:
  • Space Complexity:

1742. Maximum Number of Balls in a Box LeetCode Solution in C++

class Solution {
 public:
  int countBalls(int lowLimit, int highLimit) {
    const int maxDigitSum = 9 * 5;  // 99999
    int ans = 0;
    vector<int> count(maxDigitSum + 1);

    for (int num = lowLimit; num <= highLimit; ++num)
      ans = max(ans, ++count[getDigitSum(num)]);

    return ans;
  }

 private:
  int getDigitSum(int num) {
    int digitSum = 0;
    while (num > 0) {
      digitSum += num % 10;
      num /= 10;
    }
    return digitSum;
  }
};
/* code provided by PROGIEZ */

1742. Maximum Number of Balls in a Box LeetCode Solution in Java

class Solution {
  public int countBalls(int lowLimit, int highLimit) {
    final int maxDigitSum = 9 * 5; // 99999
    int ans = 0;
    int[] count = new int[maxDigitSum + 1];

    for (int num = lowLimit; num <= highLimit; ++num)
      ans = Math.max(ans, ++count[getDigitSum(num)]);

    return ans;
  }

  private int getDigitSum(int num) {
    int digitSum = 0;
    while (num > 0) {
      digitSum += num % 10;
      num /= 10;
    }
    return digitSum;
  }
}
// code provided by PROGIEZ

1742. Maximum Number of Balls in a Box LeetCode Solution in Python

class Solution:
  def countBalls(self, lowLimit: int, highLimit: int) -> int:
    maxDigitSum = 9 * 5  # 99999
    ans = 0
    count = [0] * (maxDigitSum + 1)

    for num in range(lowLimit, highLimit + 1):
      digitSum = self._getDigitSum(num)
      count[digitSum] += 1
      ans = max(ans, count[digitSum])

    return ans

  def _getDigitSum(self, num: int) -> int:
    return sum(int(digit) for digit in str(num))
# code by PROGIEZ

Additional Resources

Happy Coding! Keep following PROGIEZ for more updates and solutions.