组合问题时间复杂度

来源: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 什么?

0
5
慕斯0791479
回复
liuyubobobo
哇感谢老师!!!!!
2020-07-06
共5条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程