Given an integer n. Each number from 1 to n is grouped according to the sum of its digits. 

Return how many groups have the largest size.

Example 1:
Input: n = 13
Output: 4
Explanation: There are 9 groups in total, they are grouped according sum of its digits of numbers from 1 to 13:
[1,10], [2,11], [3,12], [4,13], [5], [6], [7], [8], [9]. There are 4 groups with largest size.

Example 2:
Input: n = 2
Output: 2
Explanation: There are 2 groups [1], [2] of size 1.

Example 3:
Input: n = 15
Output: 6

Example 4:
Input: n = 24
Output: 5

Constraints:

  • 1 <= n <= 10^4

Solution in python:

class Solution:
    def countLargestGroup(self, n: int) -> int:
        def count(num):
            c = 0 
            while num > 0:
                num, r = divmod(num, 10)
                c += r
            return c
        adic = dict()
        for i in range(1, n+1):
            s = count(i)
            if s not in adic.keys():
                adic[s] = 1
            else:
                adic[s] += 1
        max_v = max(adic.values())
        result = 0
        for item in adic.values():
            if item == max_v:
                result += 1
        return result
最后修改日期: 2021年3月13日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。