组合问题时间复杂度
来源:8-4 组合问题 Combinations
慕斯0791479
2020-07-04
老师下面的代码是leetcode上给出的solution,我不懂的地方是在backtrack函数中,当我们找到一个solution时,会进行output.add(new LinkedList(curr)),为什么这里add的时候是new LinkedList,而不是new
class Solution {
List<List<Integer>> output = new LinkedList();
int n;
int k;
public void backtrack(int first, LinkedList<Integer> curr) {
// if the combination is done
if (curr.size() == k)
output.add(new LinkedList(curr));
for (int i = first; i < n + 1; ++i) {
// add i into the current combination
curr.add(i);
// use next integers to complete the combination
backtrack(i + 1, curr);
// backtrack
curr.removeLast();
}
}
public List<List<Integer>> combine(int n, int k) {
this.n = n;
this.k = k;
backtrack(1, new LinkedList<Integer>());
return output;
}
}
写回答
1回答
-
liuyubobobo
2020-07-04
而不是 new 什么?
052020-07-06
相似问题