Esto se puede resolver fácilmente en o (n) tiempo usando una matriz adicional que indica qué elementos han aparecido en la matriz y luego imprimiendo los elementos no aparecidos.
Pero para resolverlo sin una matriz / espacio adicional, necesitamos encontrar alguna forma de registrar qué elemento ha aparecido, en nuestra matriz original.
Suponga que la siguiente matriz (usará indexación a partir de 1)
- Después de que termina el programa de programación (estructuras de datos y algoritmo), ¿qué se les enseña a los estudiantes en CSE después de eso?
- Cómo escribir un algoritmo de diccionario en un programa en C
- ¿Cómo puedo implementar algoritmos de aprendizaje automático en una aplicación web?
- ¿Es bueno analizar?
- ¿Qué es un algoritmo para generar todas las combinaciones posibles de un conjunto dado de letras (por ejemplo, 'a', 'b', 'c', 'd', 'e')?
4,3,2,7,8,2,3,1
Al iterar esta matriz, el primer elemento es 4.
Así que necesito actualizar esta matriz de modo que indique que 4 está apareciendo en la matriz.
Podemos hacer que el elemento en el índice 4 sea negativo. Entonces array [4] = -7.
Aquí negativo dice que 4 ha aparecido en la matriz y 7 es el número original.
Entonces, después de cada paso, la matriz será así:
1 => 4 3 2 -7 8 2 3 1
2 => 4 3 -2 -7 8 2 3 1
3 => 4 -3 -2 -7 8 2 3 1
4 => 4 -3 -2 -7 8 2 -3 1
5 => 4 -3 -2 -7 8 2 -3 -1
6 => 4 -3 -2 -7 8 2 -3 -1
7 => 4 -3 -2 -7 8 2 -3 -1
8 => -4 -3 -2 -7 8 2 -3 -1
Ahora simplemente imprima el índice de números positivos en la matriz. 😀