Now I start the third chapter, searching and graph.
The first module is dfs ,depth-first search.
Here we will not talk too much about DFS and BFS theory.
Classic Problem in AcWing
And the DFS code :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);
static int N = 10;
static boolean st[] = new boolean[N];
static int a[] = new int[N], n;
public static void main(String[] args) throws Exception {
String[] ss = br.readLine().split(" ");
n = Integer.parseInt(ss[0]);
dfs(0);
pw.flush();
br.close();
}
private static void dfs(int x) {
if (x == n) {
for (int i = 0; i < n; i++) pw.print(a[i] + " ");
pw.println();
return;
}
for (int i = 1; i <= n; i++) {
if (!st[i]) {
st[i] = true;
a[x] = i;
dfs(x + 1);
st[i] = false;
}
}
}
}