AcWing 842. 排列数字
原题链接
简单
作者:
domiso
,
2021-08-30 16:24:12
,
所有人可见
,
阅读 110
import java.util.*;
public class Main{
final static int N = 10;
static int n, path[] = new int[N];
static boolean str[] = new boolean[N];
static void dfs(int u) { //u是代表当前填到第几个坑了
if(u == n) {
for(int i = 0 ; i < n; i++) {
System.out.print(path[i] + " ");
}
System.out.println();
}
for(int i = 1; i <= n; i ++) {
if(str[i] == false) { //判断当前数字是否已经用过
path[u] = i; //当前位置位数字i
str[i] = true; //该数字已被用
dfs(u + 1); //递归到下一层【下一个坑】
str[i] = false; //恢复现场 回溯
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
dfs(0);
}
}