Encontrar elementos faltantes en una matriz
Dado que tiene una matriz A [1..n] de tamaño n, contiene elementos del conjunto {1..n}. Sin embargo, faltan dos de los elementos (y tal vez dos de los elementos de la matriz se repiten). Encuentra los elementos que faltan.
Eg si n = 5, A puede ser A [5] = {1,2,1,3,2}; y entonces los elementos que faltan son {4,5}
El enfoque que utilicé fue:
int flag[n] = {0};
int i;
for(i = 0; i < n; i++) {
flag[A[i]-1] = 1;
}
for(i = 0; i < n; i++) {
if(!flag[i]) {
printf("missing: %d", (i+1));
}
la complejidad espacial llega a O (n). Siento que este es un código muy infantil e ineficiente. Entonces, ¿podría proporcionar un algo mejor con una mejor complejidad de espacio y tiempo.