题目:
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
题意输出n×n的皇后棋子布局有多少种不同的情况。和上题一样的思路,只是不需要输出图,每次满足条件的时候记录一下次数。
int row[1000];
int col[1000];
int num;
vector<vector<string> >result;
class Solution {
public:
void dfs(int r,int n)
{
int i,j;
if(r==n)++num;
for(i=0;i<n;++i)
{
if(col[i]==0)
{
for(j=0;j<r;++j)
if(abs(j-r)==abs(i-row[j]))break;
if(j==r)
{
row[r]=i;
col[i]=1;
dfs(r+1,n);
col[i]=0;
row[r]=0;
}
}
}
}
int totalNQueens(int n) {
result.clear();
num=0;
dfs(0,n);
return num;
}
};
// blog.csdn.net/havenoidea