Maximum Number of Balls in a Box

EasyHash TableMathCounting

Solution

export function countBalls(lowLimit: number, highLimit: number): number {
  const getSumOfDigits = (num: number) => {
    let total = 0;
    while (0 < num) {
      total += num % 10;
      num = Math.floor(num / 10);
    }
    return total;
  };
 
  const counts = new Map<number, number>();
  let maxCount = 0;
  for (let i = lowLimit; i <= highLimit; i++) {
    const sumOfDigits = getSumOfDigits(i);
    const count = counts.get(sumOfDigits) ?? 0;
    counts.set(sumOfDigits, count + 1);
    maxCount = Math.max(maxCount, count + 1);
  }
  return maxCount;
}