Ich muss alle Kombinationen aus der Größe n
, die aus den Zahlen in Zahlen Array besteht zu finden. Ich habe versucht, es mit der Funktion zu tun, die ich unten geschrieben habe, aber es braucht viel Zeit und Speicher, um es so zu machen.finden Sie alle Kombinationen von gegebenen Zahlen in einer bestimmten Array-Größe
Gibt es eine Möglichkeit, es effizienter zu machen?
void createCombinationArray(ArrayList<Integer> numbers, int n, ArrayList<Integer> start) {
if (start.size() >= n) {
monthsComb.add(new ArrayList<>(start));
} else {
for (Integer x : numbers) {
start.add(x);
createCombinationArray(numbers, n, start);
start.remove(start.lastIndexOf(x));
}
}
}
Wenn es 'k' Elemente in' numbers' Sie erhalten 'k^n' Kombinationen. Selbst für relativ kleine Zahlen ist das eine Menge. Sei also nicht überrascht, wenn es lange dauert und viel Speicher verbraucht – Henry