在N-Queens的基础上修改下就可以了,不用输出方便了许多
class Solution {
private:
int cnt = 0;
public:
int totalNQueens(int n) {
if( n <= 0)
return 0;
int col[n];
queens( col, 0, n);
return cnt;
}
void queens( int * col, int row, int n){
if( row == n){
++cnt;
return;
}
for( int i = 0; i < n; ++i){
col[row] = i;
bool flag = true;
for( int j = 0; j < row; ++j){
if( col[row] == col[j] || col[row] - col[j] == row - j || col[row] - col[j] == j - row){
flag = false;
break;
}
}
if(flag)
queens( col, row+1, n);
}
}
};