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