Categorías
Algorithms

LeetCode – Eliminar duplicados de la matriz ordenada (Java)

Dada una matriz ordenada, elimine los duplicados en su lugar de modo que cada elemento aparezca solo una vez y devuelva la nueva longitud. No asigne espacio adicional para otra matriz, debe hacerlo en su lugar con memoria constante.

Por ejemplo, dada la matriz de entrada A = [1,1,2], su función debería devolver length = 2, y A ahora es [1,2].

Análisis

El problema es bastante sencillo. Devuelve la longitud de la matriz con elementos únicos, pero la matriz original también debe cambiarse. Este problema es similar a Eliminar duplicados de Sorted Array II.

Solución Java

public static int removeDuplicates(int[] A) {
	if (A.length < 2)
		return A.length;
 
	int j = 0;
	int i = 1;
 
	while (i < A.length) {
		if (A[i] != A[j]) {
			j++;
			A[j] = A[i];
		}
 
                i++;
	}
 
	return j + 1;
}

Tenga en cuenta que solo nos preocupa la primera parte única de la matriz original. Entonces está bien si la matriz de entrada es {1, 2, 2, 3, 3}, la matriz se cambia a {1, 2, 3, 3, 3}.

  LeetCode - Construya un árbol binario a partir de Preorder y Inorder Traversal (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 *