LeetCode: 217. Contiene duplicados: análisis y código (Java)

LeetCode: 217. Hay elementos duplicados [Contiene duplicados] —Análisis y código [Java]

1. Título

Dada una matriz de enteros, determine si hay elementos duplicados.
Si algún valor aparece al menos dos veces en la matriz, la función devuelve verdadero. Si cada elemento de la matriz es diferente, se devuelve falso.

Ejemplo 1:

输入: [1,2,3,1]
输出: true

Ejemplo 2:

输入: [1,2,3,4]
输出: false

Ejemplo 3:

输入: [1,1,1,3,3,4,3,2,4,2]
输出: true

Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/contains-duplicate Los
derechos de autor son propiedad de LeetCode . Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.

Dos, análisis y código

1. Tabla hash

(1) Pensando

A través de la tabla hash, el juicio de si el elemento existe en la tabla y el almacenamiento del elemento se puede completar en O (1) tiempo. En esta pregunta, determine si el número entero correspondiente ya existe en la tabla hash uno por uno, y guárdelo en la mesa en.

(2) Código

class Solution {
    
    
    public boolean containsDuplicate(int[] nums) {
    
    
        Set<Integer> hset = new HashSet<Integer>();
        for (int num : nums)
            if (!hset.add(num))
                return true;
        return false;
    }
}

(3) Resultados

Tiempo de ejecución: 5 ms, superando al 76,63% de los usuarios
en todas las presentaciones de Java ; consumo de memoria: 42,5 MB, superando al 75,97% de los usuarios en todas las presentaciones de Java.

Tres, otro

Puede optimizar aún más el tiempo de ejecución calculando el rango numérico de la matriz dada y construyendo manualmente una tabla hash.

Supongo que te gusta

Origin blog.csdn.net/zml66666/article/details/112853473
Recomendado
Clasificación