Junior — Middle
Como eliminar elementos duplicados em um array ordenado sem reordenar?
sobes.tech IA
Resposta da IA
Se o array já estiver ordenado, os elementos duplicados estarão juntos. Para remover duplicados sem ordenar novamente, pode percorrer o array uma vez e copiar os elementos únicos para um novo array ou modificar o array original no local, usando dois ponteiros.
Exemplo em Java com modificação no local (para um array de int):
public static int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;
int uniqueIndex = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[i] != nums[uniqueIndex]) {
uniqueIndex++;
nums[uniqueIndex] = nums[i];
}
}
return uniqueIndex + 1; // novo comprimento do array sem duplicados
}
No final, os primeiros uniqueIndex + 1 elementos do array serão únicos. Essa abordagem funciona em O(n) e não requer ordenação adicional.