1394. Find Lucky Integer in an Array

Easy

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

解題

Runtime: 6 ms, faster than 78.43%

Memory Usage: 3 MB, less than 98.04%

func findLucky(arr []int) int {
    max := 0
    count := make([]int, 500)
    
    for _, val := range arr {
        count[val-1]++
        if val-1 > max { max = val-1 }
    }
    
    for i:= max; i>=0; i-- {
        if count[i] == i+1 { return i+1 }
    }
    
    return -1
}

Last updated