Encontrando elementos ausentes em uma matriz
Desde que você tenha uma matriz A [1..n] de tamanho n, ela contém elementos do conjunto {1..n}. No entanto, dois dos elementos estão ausentes (e talvez dois dos elementos da matriz sejam repetidos). Encontre os elementos ausentes.
Eg se n = 5, A pode ser A [5] = {1,2,1,3,2}; e assim os elementos ausentes são {4,5}
A abordagem que usei foi:
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));
}
a complexidade do espaço é O (n). Eu sinto que este é um código muito infantil e ineficiente. Então, você poderia fornecer um algo melhor com melhor complexidade de espaço e tempo.