简单递归
#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;
}
}
}
};
原文链接: https://www.cnblogs.com/xyqxyq/p/13039919.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/352635
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!