Junior — Middle
Hoe verwijder je dubbele elementen uit een gesorteerde array zonder opnieuw te sorteren?
sobes.tech AI
Antwoord van AI
Als de array al gesorteerd is, zullen dubbele elementen naast elkaar staan. Om duplicaten te verwijderen zonder opnieuw te sorteren, kun je één keer door het array lopen en de unieke elementen kopiëren naar een nieuwe array of het originele array ter plekke aanpassen, met behulp van twee pointers.
Voorbeeld in Java met in-place wijziging (voor een int-array):
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; // nieuwe lengte van array zonder duplicaten
}
Uiteindelijk zullen de eerste uniqueIndex + 1 elementen van de array uniek zijn. Deze aanpak werkt in O(n) tijd en vereist geen extra sortering.