Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.

(N-Queens problem can see here )
可参照N-Queens问题,按照N-Queens 问题稍作修改即可。
public class Solution { //java
public int result;
public boolean check_pos(int index, int loop, int [] record){
for(int i = 0; i < index; i++){
if(record[i] == loop)
return false ;
if(record[i]+i == index + loop)
return false ;
if(record[i] -loop == i - index )
return false ;
}
return true;
}
public void subNQueen(int [] record,int index, int n){
if(index == n){
result++;
}
for(int loop = 1; loop <=n; loop++){
if(check_pos(index, loop, record)){
record[index] = loop;
subNQueen(record,index+1,n);
record[index] = 0;
}
}
}
public int totalNQueens(int n) {
int index = 0;
int [] record = new int[n];
subNQueen(record,0,n);
return result;
}
}原文地址:http://blog.csdn.net/chenlei0630/article/details/42063977