Count Largest Group
You are given an integer n.
Each number from 1 to n is grouped according to the sum of its digits.
Return the number of groups that 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.
Constraints:
1 <= n <= 104
思路一:本来想从数学上看看怎么解决,发现规律比较复杂,最后用暴力过了
public int countLargestGroup(int n) {
int[] count = new int[37];
for (int i = 1; i < n + 1; i++) {
count[count(i)]++;
}
int max = count[0];
int result = 0;
for (int k : count) {
if (k == max) {
result++;
} else if (k > max) {
result = 1;
max = k;
}
}
return result;
}
public int count(int x) {
int sum = 0;
while (x > 9) {
sum += x % 10;
x /= 10;
}
return sum + x;
}
标签:count,1399,int,max,sum,result,easy,groups,leetcode
From: https://www.cnblogs.com/iyiluo/p/16936838.html