LeetCode-Python-1394. Encuentre el número de la suerte en la matriz (tabla hash)

En una matriz de enteros, si la frecuencia de aparición de un entero es igual a su valor, llamamos a este entero el "número de la suerte".

Déle una matriz de enteros arr, encuentre y devuelva un número de la suerte.

Si hay varios números de la suerte en la matriz, simplemente devuelva el más grande.
Si no hay números de la suerte en la matriz, se devuelve -1.
 

Ejemplo 1:

Entrada: arr = [2,2,3,4]
Salida: 2
Explicación: El único número de la suerte en la matriz es 2 porque la frecuencia del valor 2 también es 2.
Ejemplo 2

Entrada: arr = [1,2,2,3,3,3]
Salida: 3
Explicación: 1, 2 y 3 son todos números de la suerte, solo es necesario devolver los 3 más grandes.
Ejemplo 3

Entrada: arr = [2,2,2,3,3]
Salida: -1
Explicación: No hay ningún número de la suerte en la matriz.
Ejemplo 4

Entrada: arr = [5]
Salida: -1
Ejemplo 5:

Entrada: arr = [7,7,7,7,7,7,7]
Salida: 7
 

Consejos:

1 <= longitud de arr. <= 500
1 <= arr [i] <= 500

Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/find-lucky-integer-in-an-array
propiedad de la deducción de todas las redes. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.

Ideas:

Use Counter directamente para contar la frecuencia de ocurrencia de cada número y luego encuentre el número de la suerte más grande.

Complejidad del tiempo: O (N)

Complejidad espacial: O (N)

class Solution(object):
    def findLucky(self, arr):
        """
        :type arr: List[int]
        :rtype: int
        """
        l = [key for key, val in collections.Counter(arr).items() if key == val]
        return max(l) if l else -1

 

Publicado 734 artículos originales · 121 alabanzas · 210,000 visitas

Supongo que te gusta

Origin blog.csdn.net/qq_32424059/article/details/105191553
Recomendado
Clasificación