zoukankan      html  css  js  c++  java
  • 1399. 统计最大组的数目

    给你一个整数 n 。请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。

    请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。

    示例 1:

    输入:n = 13
    输出:4
    解释:总共有 9 个组,将 1 到 13 按数位求和后这些组分别是:
    [1,10],[2,11],[3,12],[4,13],[5],[6],[7],[8],[9]。总共有 4 个组拥有的数字并列最多。
    示例 2:

    输入:n = 2
    输出:2
    解释:总共有 2 个大小为 1 的组 [1],[2]。
    示例 3:

    输入:n = 15
    输出:6
    示例 4:

    输入:n = 24
    输出:5
     

    提示:

    1 <= n <= 10^4

    暴力

    class Solution:
        def countLargestGroup(self, n: int) -> int:
            if n<10:return n
            cnt=[]
            for i in range(1,n+1):
                a=sum(int(s) for s in str(i))
                cnt.append(a)
            cnter=collections.Counter(cnt)
            res=[]
            for i in range(1,n):
                res.append(cnter[i])
            
            ans=res.count(max(res))
            return ans

    空间换时间

    class Solution:
        def countLargestGroup(self, n: int) -> int:
            a = [0 for _ in range(37)]
            temp = [0 for _ in range(n+1)]
            for i in range(1,n+1):
                temp[i] = temp[i//10] + i%10
                a[temp[i]]+=1
            maxCount = max(a)
            res=a.count(maxCount)
            return res
  • 相关阅读:
    数字校验1
    数字校验
    千分位保留4位小数
    如何把一个字符串格式化位4位一个空格
    from里button会提交表单
    重新学习JavaScript2015年11月3日
    java设计模式之代理模式
    自定义标签 (choose)
    自定义标签 foreach
    获取一个表格的一行的值
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13747244.html
Copyright © 2011-2022 走看看