Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
与N-Queens一样,只是输出的结果不同
class Solution {
public:
int count=0;
int num;
int *x;
int constraints(int i)
{
for(int j=1;j<i;j++)
if(x[j]==x[i]||abs(x[j]-x[i])==abs(j-i))
return 0;
return 1;
}
void traceback(int t)
{
if(t>num)
{
count++;
}
else
{
for(int i=1;i<=num;i++){
x[t]=i;
if(constraints(t))
traceback(t+1);
}
}
}
int totalNQueens(int n) {
num =n;
x=new int[n+1];
for(int i=0;i<=n;i++)
x[i]=0;
traceback(1);
return count;
}
};