1、首先需要开一个数组去记录每组的数字数目, 由数字范围可以知道各位十进制数和相加和最大为36。所以我们可以开一个大小为37的数组,这里可以用数组第一个元素去记录当前数字数目的最大值。
最后计数一下等于最大数字数目的元素个数。
class Solution {
public:
int countLargestGroup(int n) {
int num[37]={0};
int tmp=0;
for(int i=1;i<=n;++i)
{
tmp=++num[getadd(i)];
if(tmp>num[0]) num[0]=tmp;
}
tmp=0;
for(int i=1;i<37;++i) if(num[i]==num[0]) ++tmp;
return tmp;
}
int getadd(int n)
{
int sum=0;
while(n!=0)
{
sum+=n%10;
n/=10;
}
return sum;
}
};