---
###### tags: `Leetcode`
---
# Leetcode 1394. Find Lucky Integer in an Array
[link](https://leetcode.com/problems/find-lucky-integer-in-an-array/)
---
Given an array of integers arr, a lucky integer is an integer that has a frequency in the array equal to its value.
Return the largest lucky integer in the array. If there is no lucky integer return -1.
#### Example 1:
Input: arr = [2,2,3,4]
Output: 2
Explanation: The only lucky number in the array is 2 because frequency[2] == 2.
#### Example 2:
Input: arr = [1,2,2,3,3,3]
Output: 3
Explanation: 1, 2 and 3 are all lucky numbers, return the largest of them.
#### Example 3:
Input: arr = [2,2,2,3,3]
Output: -1
Explanation: There are no lucky numbers in the array.
#### Constraints:
- 1 <= arr.length <= 500
- 1 <= arr[i] <= 500
---
題意: 給一個array, 如果其中一個整數出現的頻率與他數字相同, return那個幸運數, 如果很多個, return最大的
---
We can iterate the array first, store the frequency in the dictionary, and then iterate the dictionary to find the biggest number which is an integer that has a frequency in the array equal to its value.
#### Solution 1
```python=
class Solution:
def findLucky(self, arr: List[int]) -> int:
d = {}
maxValue = -1
for i in range(len(arr)):
if arr[i] not in d:
d[arr[i]] = 1
else :
d[arr[i]] += 1
for i in d:
if i == d[i]:
maxValue = max(d[i], maxValue)
return maxValue
```
O(T): O(n)
O(S): O(n)