题目
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
列出n皇后问题的所有可能性的总数
1 和上一题一样的解法 http://blog.youkuaiyun.com/xift810/article/details/22187633
2 发觉,copy代码修改,要比自己根据思路写代码,更容易出现错误。
public class Solution {
int ans =0;
public int totalNQueens(int n) {
if(n==0){
return ans;
}
int[] rcol = new int[n];
queens(rcol,0,n);
return ans;
}
public void queens(int[] rcol,int row,int n){
if(row==n){
ans++;
return;
}
for(int col=0;col<n;col++){
rcol[row]=col;
if(check(rcol,row)){
queens(rcol,row+1,n);
}
}
}
public boolean check(int[] rcol,int row){
for(int i=0;i<row;i++){
if(rcol[i]==rcol[row]){
return false;
}
if(Math.abs(rcol[i]-rcol[row])==row-i){
return false;
}
}
return true;
}
}