<LeetCode OJ> 77. Combinations

原创 2016年03月09日 15:35:14

Total Accepted: 69360 Total Submissions: 206274 Difficulty: Medium

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],
]

分析:DONE

回溯法的典型,利用回溯法列举所有情况。

class Solution {  
public:  
    void dfs(vector<int> &subans, int start, int n, int k)//使用引用,有利于防止内存大爆炸  
    {  
        if (subans.size() == k)//已经获得答案,并且回溯  
        {  
            result.push_back(subans);   
            return ;//回溯  
        }  
        for (int i = start; i <= n; i++)  
        {  
            subans.push_back(i);  
            dfs(subans, i + 1, n, k);  
            subans.pop_back(); // 回溯完成后去掉末尾元素,准备下一轮回溯法找答案  
        }  
    }  
    vector<vector<int> > combine(int n, int k) {  
        if (n < k || k == 0)   
            return result;  
        vector<int> subres;  
        dfs( subres, 1, n, k);  
        return result;  
    }  
private:
    vector<vector<int > > result;
}; 




这里显然也可以迭代实现,有空再来做做。


注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!

原文地址:http://blog.csdn.net/ebowtang/article/details/50835803

原作者博客:http://blog.csdn.net/ebowtang

本博客LeetCode题解索引:http://blog.csdn.net/ebowtang/article/details/50668895

版权声明:本文为EbowTang原创文章,后续可能继续更新本文。如果转载,请务必复制本文末尾的信息! https://blog.csdn.net/EbowTang/article/details/50835803

Python使用combinations实现排列组合

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

leetcode 77. Combinations-排列|递归|非递归|Java|Python

原题链接:77. Combinations 【思路-Java、Python】 采用回溯算法。这是一道 NP 难问题,时间复杂度没办法提高,用一个循环递归处理子问题,问题的终止条件是每个组合中的元素个数...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016-06-02 10:43:01
  • 2106

LeetCode Combinations

求在1到n个数中挑选k个数的所有的组合类型。
  • u013291394
  • u013291394
  • 2016-01-23 21:07:58
  • 1249

Combinations 求1至n中所有K位数的所有组合

Given two integers  n  and  k , return all possible combinations of  k  numbers out of 1 ...  n . F...
  • alpha_love
  • alpha_love
  • 2017-06-14 19:22:50
  • 144

【LeetCode】Combinations 解题报告

【题目】 Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. Fo...
  • ljiabin
  • ljiabin
  • 2014-12-07 15:38:18
  • 3357

Leetcode-77_ Combinations(组合)-深搜解法-【C++】

77. Combinations Given two integers n and k, return all possible combinations of k numbers out of...
  • qq_34202873
  • qq_34202873
  • 2018-03-21 21:56:41
  • 43

c/c++递归实现排列Permutations

利用递归实现排列,比如实现字符数组list[]=“abc”的排列,方法的思想是,a开头,后面bc所有排列,然后b开头后面ac所有排列,然后c开头后面ba所有排列。 以下是例子代码,这里涉及到了递归调...
  • gaohuazhao
  • gaohuazhao
  • 2016-06-30 20:29:57
  • 824

LeetCode77——Combinations

LeetCode77——Combinations 题意: 两个数字n和k,找出所有这样的组合: 1.组合中有k个数字 2.组合是递增 3.组合中的数字是{1,2,3,....n} 的子集 ...
  • zhangxiao93
  • zhangxiao93
  • 2015-11-17 21:21:10
  • 1610

Combinations -- LeetCode

原题链接: http://oj.leetcode.com/problems/combinations/  这道题是NP问题的题目,时间复杂度没办法提高,用到的还是N-Queens中的方法:用一个循环递...
  • linhuanmars
  • linhuanmars
  • 2014-03-15 00:16:29
  • 11589

[LeetCode] Combinations

题目链接:Combinations 解题思路: 1、递归 2、n 个数里选择 m 个数,那么 i 能选择的数为 0 - (n - m) 3、设置index标识已经选择的数的个数,故每次递归时应为 in...
  • u012099869
  • u012099869
  • 2015-08-18 23:50:58
  • 323
收藏助手
不良信息举报
您举报文章:<LeetCode OJ> 77. Combinations
举报原因:
原因补充:

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