Combinations-LeetCode#77

77. Combinations

Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
Example:

Input: n = 4, k = 2
Output:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]

组合,给定两个整数 n 和 k ,返回 1 至 n 所有数量为 k 的组合。
递归从 1 开始所有长度为 k 的组合。

public class Combinations {
    public List<List<Integer>> combine(int n, int k) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> temp = new ArrayList<>();
        dfs(res, temp, n, k, 1);
        return res;
    }
    public void dfs(List<List<Integer>> res, List<Integer> temp, int n, int k, int start){
        if (temp.size() == k){
            res.add(new ArrayList<Integer>(temp));
            return;
        }
        for (int i = start; i <= n; i++){
            temp.add(i);
            dfs(res, temp, n, k, i + 1);
            temp.remove(temp.size() - 1);
        }
    }
    public static void main(String[] args) {
        Combinations combinations = new Combinations();
        combinations.combine(4,2);
    }
}
文章已创建 112

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部