import java.util.*;
public class Solution {
/**
*
* @param n int整型 the n
* @return int整型
*/
int res = 0;
public int Nqueen (int n) {
// write code here
int[] pd = new int[n];
recursion(n, 0, pd);
return res;
}
private void recursion(int n, int row, int[] pow){
if (n == row){
res++;
return;
}
for (int i = 0; i < n; i++){
if (isVaild(row, i, pow)){
pow[row] = i;
recursion(n, row + 1, pow);
}
}
}
private boolean isVaild (int row, int col, int[] pow){
for (int i = 0; i < row; i++){
if (i == row || pow[i] == col || Math.abs(row - i) == Math.abs(pow[i] - col)){
return false;
}
}
return true;
}
}