Сложность: easy
Дан массив целых чисел arr. Счастливое число — это число, частота которого в массиве равна его значению.
Верните наибольшее счастливое число в массиве. Если счастливого числа нет, верните -1.
Пример:
Input: arr = [1,2,2,3,3,3]
Output: 3
Explanation: 1, 2 and 3 are all lucky numbers, return the largest of them.
👨💻 Алгоритм:
1⃣Создайте хэш-карту для подсчёта частоты каждого числа в массиве.
2⃣Пройдитесь по ключам и значениям хэш-карты, чтобы найти счастливые числа.
3⃣Верните наибольшее счастливое число или -1, если таких чисел нет.
😎 Решение:
class Solution {
func findLucky(_ arr: [Int]) -> Int {
var counts = [Int: Int]()
for num in arr {
counts[num, default: 0] += 1
}
var largestLuckyNumber = -1
for (key, value) in counts {
if key == value {
largestLuckyNumber = max(largestLuckyNumber, key)
}
}
return largestLuckyNumber
}
}Ставь 👍 и забирай 📚 Базу знаний