---
# System prepended metadata

title: Leetcode 1394. Find Lucky Integer in an Array
tags: [Leetcode]

---

---
###### 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)