Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben

Diskutiere Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben im Java Basics - Anfänger-Themen Bereich.
H

Hbx8x

Hey, ich möchte gerne ein Programm schreiben welches vom einem beliebigen array, das größte duplikat anzeigt.

zb wäre es bei {1,5,2,2,9,9,14,3,20,5,20}

20.

Meine Idee:

Ich unterteile das Problem in zwei Teilprobleme:

1) Das array ist vom kleinsten bis zum größten Wert zu sortieren. Hier kann man quicksort oder bubblesort nutzen.
2) Eine Methode die zwei gleiche Paare in einem array findet kann man wie folgt realisieren. Man durchläuft das array mit zwei verschiedenen for-schleifen, wobei wenn array[zählvariable_von_forschleife1]==array[zählvariable_von_forschleife2] gilt, kann ein true zurückgegeben werden.

Wie gibt man aber nun das maximale Duplikat zurück ?
 
mihe7

mihe7

2) eine Schleife reicht.
Java:
for (int i = 0; i < array.length-1; i++) {
    if (array[i] == array[i+1]) {
        return array[i];
    }
}
throw new IllegalArgumentException("Array ohne Duplikate gegeben");
 
H

Hbx8x

Hmm vielen dank, aber wenn man dein Code ausführt vergleicht er doch nur nebenliegende Paare auf Gleichheit oder?
 
H

Hbx8x

Ja und wie gebe ich dann aber nur das größte duplikat aus ? Ich glaube hierfür brauche ich eine doppelte for-Schleife.

Die erste for-schleife überprüft das bereits sortierte Array auf Duplikate nach zb. dem Code wie es mihe7 beschrieben hat. Die zweite for-Schleife muss nun von den gefundenen Duplikaten nur das größte ausgeben. Sozusagen ein Array aus dem Array erstellen. Klingt aber nicht sehr schlau...
 
mihe7

mihe7

Wenn das Array nach Größe absteigend sortiert ist, dann ist das erste Duplikat das größte.
 
L

lennero

Ja und wie gebe ich dann aber nur das größte duplikat aus ? Ich glaube hierfür brauche ich eine doppelte for-Schleife.

Die erste for-schleife überprüft das bereits sortierte Array auf Duplikate nach zb. dem Code wie es mihe7 beschrieben hat. Die zweite for-Schleife muss nun von den gefundenen Duplikaten nur das größte ausgeben.
Wo steht denn das größte Duplikat wenn dein Array sortiert ist?

Geh das Array rückwärts durch und gib a aus falls a == a[i - 1]
 
H

Hbx8x

Vielen dank, an das rückwärts durchlaufen habe ich gar nicht gedacht!
 
H

Hbx8x

Noch eine Frage, da es mihe7 erwähnt hat.

,,Wenn das Array nach Größe absteigend sortiert ist, dann ist das erste Duplikat das größte." Man kann das realisieren in dem man den bubblesort bzw quicksort Code einfach ändert, indem man die for-Schleifen bei array.lenght-1 beginnend anfängt und dann i-- bzw. j-- als Zählerschritt wählt oder?
 
mihe7

mihe7

Die Schleifen haben damit nichts zu tun, das realisiert man, indem man einfach den Vergleich ändert.
 
Thema: 

Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben