题解 | #N皇后问题#
N皇后问题
https://www.nowcoder.com/practice/c76408782512486d91eea181107293b6
import java.util.*;
public class Solution {
private static int count = 0;
public void checked(int n,int max,int[] map){
if(n == max){
count++;
return;
}
for (int i = 0; i < max; i++) {
map[n] = i;
if(judge(n,map)) checked(n+1,max,map);
}
}
public boolean judge(int n,int[] map){
for (int i = 0; i < n; i++) {
if(map[n] == map[i] || Math.abs(map[n] - map[i]) == Math.abs(n - i))
return false;
}
return true;
}
public int Nqueen (int n) {
int[] map = new int[n];
checked(0,n,map);
return count;
}
}
