返回题解分享
讨论 / 题解分享/ 帖子详情

全排列 - 题解

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<vector>
using namespace std;
const int N=12;
int used[N];
int nums[N];
vector<int> res;
int n;
void dfs(int countNum){
	if(countNum>n){
		for(auto temp:res) cout<<temp<<" ";
		cout<<endl;
		return;
	}
	for(int i=0;i<n;i++){
		if(used[i]) continue;
//		标记为被使用过
		used[i]=1;
		res.push_back(nums[i]);
		dfs(countNum+1);
		used[i]=0;
		res.pop_back();
	}
}
int main(){

	cin>>n;
	for(int i=0;i<n;i++) nums[i]=i+1;
	dfs(1);
	
	return 0;
}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!