[Habilidades de resolución de problemas] para averiguar hay ningún número duplicado

Título:
darle un conjunto de datos enteros, estos datos, que tiene un número que sólo aparece una vez, otros números aparecieron dos veces, lo que le permite encontrar un número.
Los datos son los siguientes:

1,2,3,4,5,4,3,2,1

Uso xor la resolución de problemas:

  • Cualquier número 0 y el XOR es propia.
  • Cualquier número XOR con la misma son 0. (Para determinar si para repetir)
  • XOR conmutativa y asociativa de apoyo

Ideas de resolución de problemas:

1^2^3^4^5^4^3^2^1  = (1^1)^(2^2)^(3^3)^(4^4)^5 = 0^0^0^0^5 = 5

código:

 public int findNum(int[] array){
        int tmp = 0;
        for(int num : array){
            tmp = tmp^num;
        }
        return tmp;
    }

La complejidad de tiempo es O (n), la complejidad espacial es O (1)

Publicado 75 artículos originales · ganado elogios 7 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zhengdong12345/article/details/105047467
Recomendado
Clasificación