Hey zusammen,
ich habe ne Methode entwickelt, die checken soll ob ein übergebenes Array Subsets enthält die in Summe 0 ergeben. Das Funktioniert auch soweit und printet "Subset" gefunden, allerdings mit return false. Das verstehe ich nicht, ich möchte ja ein true wenn etwas gefunden wird. Es macht mich verrückt dass immer false ausgegeben wird, die Methode soll ja vorbei sein wenn ich returne. Sieht vielleicht jemand den Fehler?
ich habe ne Methode entwickelt, die checken soll ob ein übergebenes Array Subsets enthält die in Summe 0 ergeben. Das Funktioniert auch soweit und printet "Subset" gefunden, allerdings mit return false. Das verstehe ich nicht, ich möchte ja ein true wenn etwas gefunden wird. Es macht mich verrückt dass immer false ausgegeben wird, die Methode soll ja vorbei sein wenn ich returne. Sieht vielleicht jemand den Fehler?
Java:
public boolean subsetSum(int[] liste, int index, int aktuelleSumme) {
// Base-Case
if (liste.length == 1) {
if (liste[0] == 0)
return true;
else
return false;
}
for (int i = index; i < liste.length; i++) {
aktuelleSumme += liste[i];
System.out.println(liste[i]);
if (aktuelleSumme == 0) {
System.out.println("Subset gefunden !");
return true;
}
}
if (index < liste.length)
subsetSum(liste, index += 1, 0);
return false;
}
}