N-Queens II LeetCode solution in C++

1
class Solution {
2
public:
3
int totalNQueens(int n) {
4
vector<bool> col(n), diag(2 * n - 1), anti_diag(2 * n - 1);
5
return solve(col, diag, anti_diag, 0);
6
}
7

8
int solve(vector<bool> &col, vector<bool> &diag, vector<bool> &anti_diag, int row) {
9
int n = size(col), count = 0;
10
if (row == n) return 1;
11
for (int column = 0; column < n; column++)
12
if (!col[column] && !diag[row + column] && !anti_diag[row - column + n - 1]) {
13
col[column] = diag[row + column] = anti_diag[row - column + n - 1] = true;
14
count += solve(col, diag, anti_diag, row + 1);
15
col[column] = diag[row + column] = anti_diag[row - column + n - 1] = false;
16
}
17
return count;
18
}
19
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0