zoukankan      html  css  js  c++  java
  • leetcode 77. Combinations

    https://www.cnblogs.com/grandyang/p/4332522.html

    数字从1到n,生成所有具有k个的组合

    本质上跟subsets更像,因为回溯回来只能选下一个位置的数值,可选择的数值在减少,搜索树的形状与subsets更像。

    不同的是, 不是所有的节点都是可行解了,而是第k层所有的节点。

    class Solution {
    public:
        vector<vector<int>> combine(int n, int k) {
            vector<vector<int> > result;
            if(n <= 0 || k <= 0 || n < k)
                return result;
            vector<int> res;
            int level = 1;
            combine(n,k,result,res,level);
            return result;
        }   
        void combine(int n,int k,vector<vector<int> >& result,vector<int> res,int level){
            if(res.size() == k){
                result.push_back(res);
                return;
            }
            
            for(int i = level;i <= n;i++){
                res.push_back(i);
                combine(n,k,result,res,i+1);
                res.pop_back();
            }
        }
    };
  • 相关阅读:
    区块链
    黑帽内容整理
    编程语言
    编程语言
    PHP
    安全体系建设-OWASP
    burp
    编程语言-Python-GUI
    加解密
    结合自己的程序对thinkphp模板常量的理解
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/10695824.html
Copyright © 2011-2022 走看看