Categorías
Algorithms

Leetcode – Número único (Java)

El problema:

Dada una matriz de números enteros, cada elemento aparece dos veces excepto uno. Encuentra ese único.

Solución Java 1

La clave para resolver este problema es la manipulación de bits. XOR devolverá 1 solo en dos bits diferentes. Entonces, si dos números son iguales, XOR devolverá 0. Finalmente, solo queda un número.

public int singleNumber(int[] A) {
	int x = 0;
	for (int a : A) {
		x = x ^ a;
	}
	return x;
}

Solución Java 2

public int singleNumber(int[] A) {
	HashSet<Integer> set = new HashSet<Integer>();
	for (int n : A) {
		if (!set.add(n))
			set.remove(n);
	}
	Iterator<Integer> it = set.iterator();
	return it.next();
}

La pregunta ahora es ¿conoce otras formas de hacer esto?

  LeetCode - Recipiente con más agua (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *