Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Frage nach Blatt4 - 4.3
Ich verstehe das folgende Satz nicht.
Stehen im Array ab dem Index i keine Zahlen mehr zur Verfügung, gibt die Methode eine leere Zeichenkette zurück, liegt nur eine Zahl vor, wird nur diese zurückgegeben.
1, Was liegt nur eine Zahl vor?
2, Was bezeichnet “diese” von “wird nur diese zurückgegeben”?
Kann jemand erklären?
Gemeint ist, wenn das übergebene Array nur ein Element beinhaltet.
Jene Zahl, welche als einzige in dem Array existiert (s.o.)
danke!
jetzt verstehe ich.
Darf ich eine Hilfsmethode benutzen solange diese rekursiv ist
Hallo Leute,
wäre sehr dankbar für eure Hilfe.
Ich möchte gerne bei dieser Aufgabe eine Hilfsmethode benutzen in folgender Form.
public static String merge(int[] ns, int i) {
return mergeHelper(//einige Parameter);
}
private static String mergeHelper(//einige Parameter) {
...
}
Denkt ihr das ist erlaubt, solange die Hilfsmethode rekursiv aufgerufen wird?
Private Hilfsmethoden sind in der Regel erlaubt, solange nichts Anderes in der Aufgabenstellung steht.
Ich denke aber, dass du diese Merge-Methode auch ohne Hilfsmethode implementieren kannst - probier es ruhig aus!
Schwierigkeit bei Verständnis der Aufgabe
Hallo Leute,
ich habe Probleme beim Verständnis der Aufgabe, und zwar folgender Fall:
Bei folgendem Input: merge(new int[]{1,2,2,5}, 2) //(i ist bei 2)-> Welcher Output wird gegeben ist der Output “2 5” oder “1 2 2 5”?
Meine Frage lautet: beeinflusst i nur den index ab dem addiert werden soll oder auch den Output ?
Mehr Testfälle, wären bestimmt sehr hilfreich für mich gewesen.
Würde mich freuen, wenn jemand die Antwort hätte.
LG ishi10
[m]2 5[/m]
Beides.
Sehe ich aehnlich. Das ist etwas kurz beschrieben…
Falls du dir selbst Testfaelle erstellst, teile Sie gerne hier ueber das Forum mit den anderen.
Ich habe mal ein paar Tests geschrieben :scared:
Edit: fixed spaces (siehe Beitrag drunter)
org.junit.Assert.assertEquals("merge(int[]{}, 0)", "", Merge.merge(new int[]{}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{0}, 0)", "0", Merge.merge(new int[]{0}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{1}, 1)", "", Merge.merge(new int[]{1}, 1).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{1,1,2,3,4}, 0)", "2 2 3 4", Merge.merge(new int[]{1,1,2,3,4}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{0,0,2,3,4}, 0)", "0 2 3 4", Merge.merge(new int[]{0,0,2,3,4}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{2,1,2,1,2,1}, 0)", "2 1 2 1 2 1", Merge.merge(new int[]{2,1,2,1,2,1}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{2,1,3,3,4}, 0)", "2 1 6 4", Merge.merge(new int[]{2,1,3,3,4}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{1,1,2,2,4}, 0)", "2 4 4", Merge.merge(new int[]{1,1,2,2,4}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{1,1,2,1,1}, 0)", "2 2 2", Merge.merge(new int[]{1,1,2,1,1}, 0).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{0,2,3,4}, 1)", "2 3 4", Merge.merge(new int[]{0,2,3,4}, 1).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{2,1,2,1,2,1}, 10)", "", Merge.merge(new int[]{2,1,2,1,2,1}, 10).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{2,2,2,4}, 1)", "4 4", Merge.merge(new int[]{2,2,2,4}, 1).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{2,2,2,4}, 2)", "2 4", Merge.merge(new int[]{2,2,2,4}, 2).replace("\"", "").trim());
org.junit.Assert.assertEquals("merge(int[]{1,1,2,2,3,3}, 0)", "2 4 6", Merge.merge(new int[]{1,1,2,2,3,3}, 0).replace("\"", "").trim());
Stimmen diese Testfälle? Soweit ich mich nämlich erinnern kann, entfernt die trim()-Methode lediglich die Leerzeichen am Anfang und am Ende vom String.