Сложность: 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:
def findLucky(self, arr: List[int]) -> int:
counts = collections.Counter(arr)
largest_lucky = -1
for num, count in counts.items():
if num == count:
largest_lucky = max(largest_lucky, num)
return largest_lucky
Ставь 👍 и забирай 📚 Базу знаний