So entfernen Sie Duplikate aus einem Array ohne Verwendung effizient

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: So entfernen Sie Duplikate aus einem Array ohne Verwendung effizient

by Anonymous » 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>

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;
}

Top