【leetcode】1399. Count Largest Group

题目如下:

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

解题思路:把一个数字的位和算出来就行了。

代码如下:

class Solution(object):
    def countLargestGroup(self, n):
        """
        :type n: int
        :rtype: int
        """
        dic = {}
        max_count = 0
        for i in range(1,n+1):
            count = 0
            while i > 0:
                count += i%10
                i/=10
            dic[count] = dic.setdefault(count,0)+1
            max_count = max(dic[count],max_count)
        res = 0
        for value in dic.itervalues():
            if value == max_count:res += 1

        return res

 

posted @ 2020-04-25 08:53  seyjs  阅读(407)  评论(0编辑  收藏  举报