组合 LeetCode 77|刷题打卡

98 阅读1分钟

题目

题解

和全排列一样注意循环是从start =1 开始

代码

List<List<Integer>> ans = new ArrayList<>();
public List<List<Integer>> combine(int n, int k) {
    dfs(new ArrayList<>(), 1, n, k);
    return ans;
}

private void dfs(ArrayList<Integer> temp, int start, int n, int k) {

    if (k == temp.size()) {
        ans.add(new ArrayList<>(temp));
        return;
    }
    for (int i = start; i <= n; i++) {
        temp.add(i);
        dfs(temp, i + 1, n, k);
        temp.remove(temp.size() - 1);
    }
}

备注

本文正在参与「掘金 2021 春招闯关活动」, 点击查看