zoukankan      html  css  js  c++  java
  • leetcode上回溯法的使用

    17

    93

    131

    46(全排列)

    class Solution {
    public:
        vector<vector<int>> permute(vector<int>& nums) {
            vector<vector<int>> res;
            permuteDFS(nums, 0, res);
            return res;
        }
        
        void permuteDFS(vector<int>& num, int start, vector<vector<int>>& res) {
            if (start >= num.size()) res.push_back(num);
            for (int i = start; i < num.size(); ++i) {
                swap(num[start], num[i]);
                permuteDFS(num, start + 1, res);
                swap(num[start], num[i]);
            }
        }
    };
    

    47

     77(组合,记得剪枝)

    class Solution {
    public:
        vector<vector<int>> res;
        
        void gencombination(int n,int k,int start,vector<int> &c)
        {
            if(c.size()==k){
                res.push_back(c);
                return;
            }
            
            for(int i=start;i<=n-(k-c.size())+1;i++){
                c.push_back(i);
                gencombination(n,k,i+1,c);
                c.pop_back();
            }
                
            return;
        }
        
        vector<vector<int>> combine(int n, int k) {
            res.clear();
            if(n<=0||k<=0||k>n)
                return res;
            
            vector<int> c;
            gencombination(n,k,1,c);
            return res;
        }
    };

    39

    40

    216

    78

    90

    401

  • 相关阅读:
    Python with
    Python else
    Python list
    The Python Debugger Pdb
    RPM 包
    yum
    OpenStack I18N
    Python unittest
    MySQL 行格式
    MySQL 行溢出数据
  • 原文地址:https://www.cnblogs.com/darklights/p/11684576.html
Copyright © 2011-2022 走看看