https://leetcode.com/problems/count-largest-group/description/ | Easy |
---|
Дано целое число n. Для каждого числа от 1 до n вычисляется сумма его цифр. Числа группируются по этой сумме. Необходимо найти количество групп с наибольшим размером (то есть групп, содержащих максимальное количество чисел).
fun countLargestGroup(n: Int): Int {
// Карта для хранения групп по сумме цифр
val groupSizes = mutableMapOf<Int, Int>()
// Проходим по числам от 1 до n
for (num in 1..n) {
// Вычисляем сумму цифр
var sum = 0
var temp = num
while (temp > 0) {
sum += temp % 10
temp /= 10
}
// Увеличиваем размер группы для этой суммы
groupSizes[sum] = groupSizes.getOrDefault(sum, 0) + 1
}
// Находим максимальный размер группы
val maxSize = groupSizes.values.maxOrNull() ?: 0
// Считаем количество групп с максимальным размером
return groupSizes.values.count { it == maxSize }
}