No, quello che intendevo è che in B[] ti dice che in quella posizione, in A[], vi è un doppione.
Es. in pseudocodice
A = { 1, 2, 4, 0, 2, 3, 4, 2 }
B = { 0, 0, 0, 0, 1, 0, 1, 1 }
Naturalmente B te lo devi comporre tu, con due cicli for...
Una volta che hai B ti basta ripassare A...
Se non te la senti di creare un vettore aggiuntivo (B) ti consiglio di implementare intanto l'algoritmo che avevi ipotizzato all'inizio.