Ich bin verwirrt durch die Linie res.add(new ArrayList<Integer>(temp));
. Könnten Sie mir bitte sagen, warum es falsch ist, wenn ich einfach res.add(temp)
verwende?Verwirrt von ArrayList Initialisierung
public void dfs(int[] nums, int index, List<List<Integer>> res, List<Integer> temp) {
res.add(new ArrayList<Integer>(temp));
for(int i = index; i < nums.length; i++) {
temp.add(nums[i]);
dfs(nums, i + 1, res, temp);
temp.remove(temp.size() - 1);
}
}
Sie initialisieren eine 'ArrayList' um eine andere Liste, da ist nichts _wrong_ mit diesem an sich. Vielleicht wollten Sie 'addAll()' verwenden. –
Java nicht verwirrt..Sie nur verwirrt – sasikumar
Konnten Sie den aufrufenden Code für diese zwei Methoden auch zeigen? Es ist nicht klar, wie Sie "res" nach dem Aufruf der Methoden verwenden möchten. –