Add to List 77. Combinations

来源:互联网 发布:软件测试计划书实例 编辑:程序博客网 时间:2024/06/16 01:39

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

For example,
If n = 4 and k = 2, a solution is:

[  [2,4],  [3,4],  [2,3],  [1,2],  [1,3],  [1,4],]

public class Solution {    public List<List<Integer>> combine(int n, int k) {        List<List<Integer>> data = new ArrayList<>();if (n == 0 || n < k)return data;helper(data, new LinkedList<Integer>(), n, k);return data;    }    public void helper(List<List<Integer>> data, List<Integer> temp, int n, int k) {for (int i = n; i >= k; --i) {if (k == 0) {data.add(temp);break;} else {LinkedList<Integer> next = new LinkedList<>(temp);next.addFirst(i);helper(data, next, i - 1, k - 1);}}}}


原创粉丝点击