zoukankan      html  css  js  c++  java
  • 46. 全排列

    简单递归

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int MAXN=1e6+10;
    
    int a[10],vis[10];
    int n;
    vector<vector<int>> ans;
    
    void dfs(vector<int> v) {
        if (v.size()==n) {
            ans.push_back(v);
            return ;
        }
        
        for (int i=0;i<n;i++) {
            if (!vis[i]) {
                vis[i]=1;
                v.push_back(a[i]);
                dfs(v);
                v.pop_back();
                vis[i]=0;
            }
        }
    }
    
    int main() {
        freopen("in.txt","r",stdin);
    
        cin>>n;
        for (int i=0;i<n;i++) {
            cin>>a[i];
        }
        dfs({});
        for (auto vc: ans) {
            for (auto x: vc) {
                cout<<x<<" ";
            }
            cout<<endl;
        }
        return 0;
    }
    

    粘贴到leetcode中

    46. 全排列

    class Solution {
    public:
        
            
        vector<vector<int>> ans;
        int vis[10009];
        int n;
        
        vector<vector<int>> permute(vector<int>& nums) {
            memset(vis,0,sizeof(vis));
            ans.clear();
            n=nums.size();
            dfs({},nums);
            return ans;
        }
        
        void dfs(vector<int> v,vector<int>& nums) {
            if (v.size()==n) {
                ans.push_back(v);
                return ;
            }
    
            for (int i=0;i<n;i++) {
                if (!vis[i]) {
                    vis[i]=1;
                    v.push_back(nums[i]);
                    dfs(v,nums);
                    v.pop_back();
                    vis[i]=0;
                }
            }
        }
    };
    
  • 相关阅读:
    javascript 对象只读
    异步IO
    模板
    Web框架
    WSGI接口
    web开发发展历程
    python函数中的参数类型
    学习网址
    python inspect模块
    详解python的装饰器decorator
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/13039919.html
Copyright © 2011-2022 走看看