zoukankan      html  css  js  c++  java
  • [leetcode]Combinations

    问题描写叙述:

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

    基本思想:

    回溯法

    代码:

     vector<int> record;         //C++
        vector<vector<int> >result;
        set<vector<int> > myset;
        int kNum = 0;
        
        void addSolution(){
            vector<int> tmp(record.begin(),record.end());
            sort(tmp.begin(),tmp.end());
            if(myset.find(tmp) == myset.end()){
                result.push_back(tmp);
                myset.insert(tmp);   
            }
        }
        void subCombinationSum(vector<int> &cadidates,int bpos,vector<int> &base, int k){
            if(kNum == k){
                addSolution();
            }
            
            int size = cadidates.size();
            for(int i = bpos; i < size; i++){
                if(base[i] == 1)
                    continue;
                    
                record.push_back(cadidates[i]);
                base[i] = 1;
                kNum++;
                subCombinationSum(cadidates,<span style="color:#FF0000;"><strong>i+1</strong></span>,base,k);  //i+1  避免反复
                record.pop_back();
                base[i] = 0;
                kNum--;
            }
        }
        
        vector<vector<int> > combine(int n, int k) {
            vector<int> candidates(n);
            for(int i = 0; i < n; i++)
                candidates[i] = i+1;
            vector<int> base(candidates.size(),0);
            subCombinationSum(candidates,0,base,k);
            return result;
        }


  • 相关阅读:
    html Table实现表头固定
    Asp.net ORA-12154: TNS: 无法解析指定的连接标识符
    VS加载项目时报错 尚未配置为Web项目XXXX指定的本地IIS
    Sqlserver 导出insert插入语句
    RRAS
    MVC实例应用模式
    MVC概述
    23种设计模式
    XXX系统质量属性
    大型网站架构读后感
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6920107.html
Copyright © 2011-2022 走看看