[Lintcode]Combinations

原创 2016年08月28日 16:44:33

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

Example

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 {
    /**
     * @param n: Given the range of numbers
     * @param k: Given the numbers of combinations
     * @return: All the combinations of k numbers out of 1..n
     */
    public List<List<Integer>> combine(int n, int k) {
		if(k > n) return null;
		List<List<Integer>> res = new ArrayList<List<Integer>>();
		helper(res, new ArrayList<Integer>(), n, k, 1);
		return res;
    }
    
    void helper(List<List<Integer>> res, List<Integer> list, int n, int k, int index) {
        if(k == 0){
            res.add(new ArrayList<Integer>(list));
            return;
        }
        for(int i = index; i <= n; i++) {
            list.add(i);
            helper(res, list, n, k - 1, i + 1);
            list.remove(list.size() - 1);
        }
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

lintcode算法分析和解答

  • 2017年07月26日 18:31
  • 13.93MB
  • 下载

Letter Combinations of a Phone Number [leetcode]谈谈循环解法的两种思路

本系列博文中有很多两种思路的,其实是因为第一遍刷题的时候有一个想法,第二遍刷题的时候已经忘掉之前的思路了,又有新的想法了。 同时大部分代码我也同时PO到leetcode的对应题目的问答中去了,所以如...

《leetCode》:Combinations

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

POJ 1306 Combinations

Combinations Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8013   A...

leetcode 17. Letter Combinations of a Phone Number

题意 给定一个数字字符串,枚举各个数字对应的字母组合后的字符串(不重复)。 题解 一个串中字母的重复次数,即后面字母形成串的可能种数。 给定数字”234”,对应串“abc”、“def”、...

[LeetCode254]Factor Combinations

Numbers can be regarded as product of its factors. For example,8 = 2 x 2 x 2; = 2 x 4. Write a fun...

Letter Combinations of a Phone Number - Leetcode

题意:Given a digit string, return all possible letter combinations that the number could represent. ...

[Leetcode] 77. Combinations 解题报告

题目: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Lintcode]Combinations
举报原因:
原因补充:

(最多只允许输入30个字)