Ich muss ein Programm schreiben, das für ein gegebenes Array von Ints alle seine Elemente ausgibt, aber jeden Wert nur einmal, ohne Wiederholungen. Das ist mein Tutor sagte. Ich stimme zu, dass es mehrere Beispiele gibt, aber ich habe spezielle Bedingungen wie:Nummer aus Array entfernen
Erstellen Sie keine Hilfsarrays, Sammlungen oder Strings!
Verwenden Sie keine Klassen aus anderen Paketen als dem Standard java.lang.
Ich habe so hier nicht so lange Java studiert ist, was ich getan habe:
public class Third {
public static void main(String[] args) {
int[] p = {5, 2, 2, 5, -1, 5, 12, 2, 5, 44, 12, 9};
remove(p);
}
static public void remove(int[] a) {
int min = Integer.MIN_VALUE;
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] == a[j]) {
a[i] = min;
}
}
}
for (int j = 0; j < a.length; j++) {
if (a[j] != min) {
System.out.println(a[j]);
}
}
}
}
Mir ist klar, dass dies nicht effizient ist, weil es nicht in der Lage ist int der Minimalwert zu drucken. Gibt es einen anderen Weg, es richtig zu machen?
Also wollen Sie im Grunde Duplikate an Ort und Stelle entfernen? Das Problem, das Sie mit dem minimalen Wert haben, ist, dass Ihnen eine Spezifikation fehlt - was werden Sie mit den leeren Räumen tun? Sie müssen einen Wert haben, der ein Duplikat sein muss, wenn es mehr als einen gibt ... –
Niemals mehr Informationen in Kommentare einfügen; Aktualisiere stattdessen deine Frage. – GhostCat