Hey,
Ich suche irgendwie eine kluge Idee, wenn ich eine List<Integer> habe davon alle SubLists zu berechnen, aber angefangen bei der grössten und dann immer kleiner.
Um bei Aufgaben wie z.b. finde die grösste(n) SubLists, welche xy erfüllen.
Bisher hab ich nur einmal rekursiv eine Methode um die Sublists zu finden du eine Iterative.
Aber ich weiss nun nicht, wie ichs richtig ändern sollte, um die SubLists der Grösse nach zu finden, angefangen bei der grössten.
Meine Versuche die for Schleife zu ändern haben nicht funktioniert.
Hoffe jemand kann mir helfen.
Ich suche irgendwie eine kluge Idee, wenn ich eine List<Integer> habe davon alle SubLists zu berechnen, aber angefangen bei der grössten und dann immer kleiner.
Um bei Aufgaben wie z.b. finde die grösste(n) SubLists, welche xy erfüllen.
Java:
public static void main(String[] args) {
List<Integer> test = new ArrayList<Integer>();
test.add(1);
test.add(13);
test.add(4);
subSequences(test); // [1][13][1, 13][13][4][13, 4][1, 13, 4]
System.out.println();
System.out.println(subSequencesIt(test)); //[[1], [4], [1, 13, 4], [13, 4], [13], [1, 13]]
}
public static void subSequences(List<Integer> test) {
if (test.size() == 1) {
System.out.print(test);
return;
} else {
subSequences(test.subList(0, test.size() - 1));
subSequences(test.subList(1, test.size()));
System.out.print(test);
}
}
public static Set<List<Integer>> subSequencesIt(List<Integer> test) {
List<Integer> out = new ArrayList<Integer>();
Set<List<Integer>> back = new HashSet<List<Integer>>();
for (int j = 0; j < test.size(); j++) {
for (int i = j + 1; i <= test.size(); i++) {
out = test.subList(j, i);
back.add(out);
}
}
return back;
}
}
Bisher hab ich nur einmal rekursiv eine Methode um die Sublists zu finden du eine Iterative.
Aber ich weiss nun nicht, wie ichs richtig ändern sollte, um die SubLists der Grösse nach zu finden, angefangen bei der grössten.
Meine Versuche die for Schleife zu ändern haben nicht funktioniert.
Hoffe jemand kann mir helfen.