Ich versuche, eine Methode zu erstellen, die Kreuzung von zwei Arrays mit Wiederholung tut.Kreuzung von zwei Arrays mit Wiederholung
Beispiel: {1,2,5,4,1,3} and {1,2,1} -> {1,1,2}.
Ich habe ein Verfahren, das Schnitt tut, aber ohne Wiederholung.
public int[] findSameElements(int[] p1, int[] p2) {
int count = 0;
for (int i = 0; i < p1.length; i++) {
for (int j = 0; j < p2.length; j++) {
if (p1[i] == p2[j]) {
count++;
break;
}
}
}
int[] result = new int[count];
count = 0;
for (int i = 0; i < p1.length; i++) {
for (int j = 0; j < p2.length; j++) {
if (p1[i] == p2[j]) {
result[count++] = p1[i];
break;
}
}
}
return result;
}
Wie kann ich Wiederholungen hinzufügen, ohne Arrays.*
oder List.*
zu verwenden?
Haben Sie versucht, diesen Code auszuführen? Es funktioniert gut für mich. Es gibt '{1, 2, 1}' zurück. Ich denke du willst das nur? –
Sind Sie sicher, es funktioniert nicht für mich. – Alex
Es funktioniert möglicherweise nicht, weil Sie in Ihrer ersten for-Schleife 'p1b' anstelle von' p1' verwendet haben. -> 'für (int i = 0; i