https://leetcode.com/problems/find-lucky-integer-in-an-array/description/ | Easy |
---|
Дан массив целых чисел arr. Счастливым числом называется число, которое встречается в массиве столько раз, сколько оно само (например, если число 3 встречается ровно 3 раза). Необходимо найти наибольшее счастливое число в массиве. Если счастливых чисел нет, вернуть -1.
fun findLucky(arr: IntArray): Int {
// Подсчитываем частоту каждого числа
val freq = mutableMapOf<Int, Int>()
for (num in arr) {
freq[num] = freq.getOrDefault(num, 0) + 1
}
// Находим счастливое число (где частота равна числу)
var lucky = -1
for ((num, count) in freq) {
if (num == count) {
lucky = maxOf(lucky, num)
}
}
return lucky
}