So entfernen Sie Duplikate aus einem Array ohne Verwendung effizient
Posted: 08 May 2025, 15:32
Ich wurde gebeten, meine eigene Implementierung zu schreiben, um doppelte Werte in einem Array zu entfernen. Hier ist, was ich geschaffen habe. Aber nach Tests mit 1.000.000 Elementen dauerte es sehr lange, bis es fertig war. Gibt es etwas, das ich tun kann, um meinen Algorithmus oder Fehler zu verbessern?
Ich muss meine eigene Implementierung schreiben - nicht set , Hashset usw. oder andere Tools wie Iteratoren. Einfach ein Array zum Entfernen von Duplikaten. < /Strong> < /p>
Ich muss meine eigene Implementierung schreiben - nicht set , Hashset usw. oder andere Tools wie Iteratoren. Einfach ein Array zum Entfernen von Duplikaten. < /Strong> < /p>
Code: Select all
public static int[] removeDuplicates(int[] arr) {
int end = arr.length;
for (int i = 0; i < end; i++) {
for (int j = i + 1; j < end; j++) {
if (arr[i] == arr[j]) {
int shiftLeft = j;
for (int k = j+1; k < end; k++, shiftLeft++) {
arr[shiftLeft] = arr[k];
}
end--;
j--;
}
}
}
int[] whitelist = new int[end];
for(int i = 0; i < end; i++){
whitelist[i] = arr[i];
}
return whitelist;
}