AcWing 842. 排列数字
原题链接
简单
作者:
恒心
,
2021-01-26 23:48:07
,
所有人可见
,
阅读 330
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
boolean[] visited = new boolean[n + 1];
int[] path = new int[n];
dfs(0, n, visited, path);
}
// handle the Nth Floor
public static void dfs(int k, int n, boolean[] visited, int[] path){
if(k == n){
for(int num : path){
System.out.print(num + " ");
}
System.out.println();
}
for(int i = 1; i <= n; ++i){
if(!visited[i]){
// 填充path
path[k] = i;
// 标记颜料盒
visited[i] = true;
dfs(k + 1, n, visited, path);
// 从path中取出来
path[k] = 0;
// 放回颜料盒
visited[i] = false;
}
}
}
}