[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);
        }
    }
}


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

Python使用combinations实现排列组合

Python使用combinations实现排列组合    好久没有写博客了!昨天小牛在上海举办了牛友见面会,现场优惠还是比较大,心仪已久加上一时脑热就入手了。以为会有多么开心,其实目前最大的感受就是...
  • xiaoyu90520
  • xiaoyu90520
  • 2017年07月30日 17:25
  • 685

lintcode阶梯训练第三关(九章)

595、Binary Tree Longest Consecutive Sequence 题目 Given a binary tree, find the length of the longest...
  • Dashuai_Liu
  • Dashuai_Liu
  • 2017年03月28日 10:54
  • 581

LintCode数学题总结

LC上有一些标记为mathematics的题目,基本就是纯数学题或者数字题,也是需要掌握的。 517. Ugly Number 丑数,是一个正数,并且因子只包含2、3、5。此外,1也算丑数。0和负数都...
  • luoshengkim
  • luoshengkim
  • 2016年08月09日 10:58
  • 984

java对象的内存分配入口

一.GC策略检查        JVM在
  • xhh198781
  • xhh198781
  • 2014年11月01日 19:34
  • 3310

LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)

链接 LeetCode题目:https://leetcode.com/problems/letter-combinations-of-a-phone-number/ GitHub代码:h...
  • gatieme
  • gatieme
  • 2016年04月07日 16:53
  • 1548

LintCode链表题总结

由于链表本身结构的单一性,链表的题目很少会有很大的变种,基本都是围绕几个基本的考点出题目。所以链表的题目比较好掌握,但是链表的题目又不太容易一次就AC通过,由于边界情况未考虑、空指针(比如head.n...
  • luoshengkim
  • luoshengkim
  • 2016年06月01日 14:08
  • 2885

Lintcode题目总结

方法技巧题: Complete Binary Tree: http://www.lintcode.com/en/problem/complete-binary-tree/ 用一个名为nodes的vec...
  • xero10
  • xero10
  • 2016年05月19日 10:36
  • 573

LintCode数组题总结

做算法题的时候,几乎不可避免要跟数组打交道。在LintCode上数组那一章有这么一些题目: 1)547. Intersection of Two Arrays 比较简单。要求找到2个数组的...
  • luoshengkim
  • luoshengkim
  • 2016年06月02日 23:16
  • 1800

combinations 经典排列算法

【题目】 Given two integers  n  and  k , return all possible combinations of  k  numbers out of 1 ....
  • haihaa
  • haihaa
  • 2016年05月10日 21:07
  • 184

lintcode,单词接龙

给出两个单词(start和end)和一个字典,找到从start到end的最短转换序列 比如: 每次只能改变一个字母。 变换过程中的中间单词必须在字典中出现。 注意事项 如果没有转换序列则返...
  • zsjmfy
  • zsjmfy
  • 2016年12月22日 14:23
  • 588
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Lintcode]Combinations
举报原因:
原因补充:

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