题目描述
继续思考“n-queens”问题
这次我们不是输出皇后的排列情况,而是输出n皇后问题一共有多少种解法

Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
示例2
输出
class Solution {
public:
/**
*
* @param n int整型
* @return int整型
*/
void f(int &cnt,int a[],int n,int level){
if (level ==n) {cnt++;return;}
for (int i=0;i<n;i++){
int j=0;
for (;j<level;j++){
if (a[j]==i || level -j ==i-a[j] || j-level==i-a[j]) break;
}
if (j==level){
a[level]=i;
f(cnt,a,n,level+1);
}
}
}
int totalNQueens(int n)
{
int a[n];
int cnt=0;
f(cnt,a,n,0);
return cnt;
}
};