 LeetCode - Arrays - 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], , , , , . There are 4 groups with largest size.

Example 2:

Input: n = 2
Output: 2
Explanation: There are 2 groups ,  of size 1.

Example 3:

Input: n = 15
Output: 6

Example 4:

Input: n = 24
Output: 5

class Solution {
public int countLargestGroup(int n) {
int result = 0;
int max = 0;
Map<Integer,Integer> freqMap = new HashMap<Integer,Integer>();
for(int i=n;i>0;i--){
int sum = getSum(i);
freqMap.put(sum,freqMap.getOrDefault(sum,0)+1);
}
//System.out.println(freqMap);
List<Integer> valueList = new ArrayList<Integer>(freqMap.values());
for(int i=0;i<valueList.size();i++){
if(i==0){
max = valueList.get(i);
result = 1;
}
else{
if(valueList.get(i)>max){
max = valueList.get(i);
result=1;
}
else if(valueList.get(i)==max) result++;

}
}
return result;
}

public int getSum(int n){
int sum = 0;
while(n>0){
sum = sum + n%10;
n = n/10;
}
return sum;
}
}