【题目】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

【解题思路1】自建哈希数组

因为最大10^4,所以最大数位和是9+9+9+9=36

class Solution {public int countLargestGroup(int n) {if(n < 9) return n;int[] bit_sum = new int[37];for(int i = 1; i <= n; i ++){bit_sum[bitsum(i)] ++;}int max = 1;int ans = 1;for(int i = 1; i < 37; i++){if(bit_sum[i] > max){max = bit_sum[i] ;ans = 1;}else if(bit_sum[i]  == max){ans += 1;}else{break;}}//for(int num : bit_sum) ans += num == max ? 1 : 0;return ans;}public int bitsum(int num){int sum = 0;while(num > 0){sum += num % 10;num /= 10;}return sum;}
}

优化版
如何将十进制的各个数位相加,因为求的是从1-n的数位和,所以可以找出规律:
sum[i] = sum[i / 10] + i % 10 //按顺序添加sum[i]

class Solution {public int countLargestGroup(int n) {int ans = 0, max = 1;int[] count = new int[n +  1];// 统计数位和有多少int[] sum = new int[n + 1]; //计算1-n各个元素的数位和,例如数字i的数位和是sum[i / 10] + i % 10for(int i = 1; i <= n; i++){sum[i] = sum[i / 10] + i % 10;count[sum[i]]++;if(count[sum[i]] > max) max = count[sum[i]];}for(int num : count) ans += num == max ? 1 : 0;return ans;}
}

leetcode 1399. 统计最大组的数目相关推荐

  1. 【LeetCode】1399. 统计最大组的数目(C++)

    1399. 统计最大组的数目(C++) 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 2.3 示例3 2.4 示例4 3 解题提示 4 解题思路 5 源码详解(C++) 1 题目描述 给 ...

  2. 【数组】1399. 统计最大组的数目(简单)

    [题目] 给你一个整数 n .请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中. 请你统计每个组中的数字数目,并返回数字数目并 ...

  3. 1399 统计最大组的数目

    题目描述: 给你一个整数 n .请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中. 请你统计每个组中的数字数目,并返回数字数目 ...

  4. 1399. 统计最大组的数目

    给你一个整数 n .请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中. 请你统计每个组中的数字数目,并返回数字数目并列最多的组 ...

  5. LeetCode 1063. 有效子数组的数目(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个整数数组 A,返回满足下面条件的 非空.连续 子数组的数目: 子数组中,最左侧的元素不大于其他元素. 示例 1: 输入:[1,4,2,5,3] 输 ...

  6. LeetCode 1955. 统计特殊子序列的数目

    文章目录 1. 题目 2. 解题 1. 题目 特殊序列 是由 正整数 个 0 ,紧接着 正整数 个 1 ,最后 正整数 个 2 组成的序列. 比方说,[0,1,2] 和 [0,0,1,1,1,2] 是 ...

  7. LeetCode 1925. 统计平方和三元组的数目

    文章目录 1. 题目 2. 解题 1. 题目 一个 平方和三元组 (a,b,c) 指的是满足 a2+b2=c2a^2 + b^2 = c^2a2+b2=c2 的 整数 三元组 a,b 和 c . 给你 ...

  8. LeetCode 1254. 统计封闭岛屿的数目(图的BFS DFS)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 有一个二维矩阵 grid ,每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 ). 我们从一块陆地出发,每次可以往 ...

  9. LeetCode 1922. 统计好数字的数目(快速幂)

    文章目录 1. 题目 2. 解题 1. 题目 我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2,3,5 或 7). 比方说, ...

最新文章

  1. java swing 外观框架_Swing外观框架BeautyEye使用
  2. Oracle 11g RAC 添加新节点及故障解决案例
  3. mdp框架_强化学习:MDP(Markov Decision Process)
  4. jzoj1274-游历的路线【分层图,SPFA】
  5. csp-s模拟测试44「D·E·F」
  6. txt如何单独单独选择一列_散列| 单独链接以解决冲突
  7. 机器学习 属性_属性关系文件格式| 机器学习
  8. python数据库自动重连_python mysql断开重连的实现方法
  9. 15拆分成3个不同的自然数_一个简单的算法 - 将一个正整数拆分成指定几个正整数的组合...
  10. bigint在java中用什么表示_即使我确信圣诞老人不存在,我却仍然每年给我的孩子们准备圣诞礼物,为什么?...
  11. 微信群消息自动转发另一群
  12. python转exe遇到的坑及解决方案
  13. 脑机直播 x 赛博驱魔!瑞云专访揭秘胶囊计划国风科幻神作《终极体验》制作幕后...
  14. 汉字编码与拼音输入法
  15. google广告分类
  16. 01百思不得其姐基本配置
  17. 如何定位web前后台的BUG
  18. JAVA查询数据库并显示jsp_java servlet数据库查询并将数据显示到jsp页面
  19. python3爬虫豆瓣_Python爬虫(3)豆瓣登录
  20. nginx 504错误日志出现 upstream timed out (110: Connection timed out) while reading response

热门文章

  1. 网络工程师实战系统【NAT专题】-夏杰-专题视频课程
  2. 基于 java的停车场智能管理系统
  3. 俱乐部会员信息管理系统
  4. 关于在树莓派内存卡配置上遇到的坑
  5. 5.Java中的基本数据类型有哪些?
  6. CentOS系统安装jmicron网卡驱动
  7. 如何理解梯度下降算法
  8. 免费领取:计算机视觉经典学术论文!
  9. 技术类简历怎么写?这两个模板就够啦!
  10. PHP开发者的 PHP源代码 --之一 结构