Skip to content

Commit a0d93cb

Browse files
solves count largest grop
1 parent 232a23b commit a0d93cb

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@
355355
| 1385 | [Find The Distance Value Between 2 Arrays](https://leetcode.com/problems/find-the-distance-value-between-two-arrays) | [![Java](assets/java.png)](src/FindTheDistanceValuesBetweenTwoArrays.java) | |
356356
| 1389 | [Create Target Array in Given Order](https://leetcode.com/problems/create-target-array-in-the-given-order) | [![Java](assets/java.png)](src/CreateTargetArrayInGivenOrder.java) | |
357357
| 1394 | [Find Lucky Integer In An Array](https://leetcode.com/problems/find-lucky-integer-in-an-array) | [![Java](assets/java.png)](src/FindTheLuckyIntegerInAnArray.java) | |
358-
| 1399 | [Count Largest Group](https://leetcode.com/problems/count-largest-group) | | |
358+
| 1399 | [Count Largest Group](https://leetcode.com/problems/count-largest-group) | [![Java](assets/java.png)](src/CountLargestGroup.java) | |
359359
| 1403 | [Minimum Subsequence in Non-Increasing Order](https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order) | | |
360360
| 1408 | [String Matching In An Array](https://leetcode.com/problems/string-matching-in-an-array) | | |
361361
| 1413 | [Minimum Value To Get Positive Step By Step Sum](https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum) | | |

Diff for: src/CountLargestGroup.java

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
public class CountLargestGroup {
5+
public int countLargestGroup(int n) {
6+
Map<Integer, Integer> sumOfDigitsFrequencies = getFrequenciesOfSumOfDigits(n);
7+
int largestGroupSize = 0, largestGroupFrequency = 0;
8+
for (int groupSize : sumOfDigitsFrequencies.values()) {
9+
if (groupSize > largestGroupSize) {
10+
largestGroupSize = groupSize;
11+
largestGroupFrequency = 1;
12+
} else if (largestGroupSize == groupSize) {
13+
largestGroupFrequency++;
14+
}
15+
}
16+
return largestGroupFrequency;
17+
}
18+
19+
private Map<Integer, Integer> getFrequenciesOfSumOfDigits(int N) {
20+
Map<Integer, Integer> frequencies = new HashMap<>();
21+
for (int number = 1 ; number <= N ; number++) {
22+
int sumOfDigits = sumOfDigits(number);
23+
frequencies.put(sumOfDigits, frequencies.getOrDefault(sumOfDigits, 0) + 1);
24+
}
25+
return frequencies;
26+
}
27+
28+
private int sumOfDigits(int number) {
29+
int sum = 0;
30+
while (number > 0) {
31+
sum += number % 10;
32+
number /= 10;
33+
}
34+
return sum;
35+
}
36+
}

0 commit comments

Comments
 (0)