Skip to content

Commit afb77e3

Browse files
Merge pull request #3441 from Tetsuya3850/patch-2
2 parents 06feda5 + 15e0142 commit afb77e3

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Diff for: java/0052-n-queens-ii.java

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class Solution {
2+
int count = 0;
3+
4+
public int totalNQueens(int n) {
5+
Set<Integer> colSet = new HashSet<>();
6+
Set<Integer> posDiagSet = new HashSet<>(); // (r + c)
7+
Set<Integer> negDiagSet = new HashSet<>(); // (r - c)
8+
backtrack(0, n, colSet, posDiagSet, negDiagSet);
9+
return count;
10+
}
11+
12+
private void backtrack(
13+
int row,
14+
int n,
15+
Set<Integer> colSet,
16+
Set<Integer> posDiagSet,
17+
Set<Integer> negDiagSet) {
18+
if (row == n) {
19+
count += 1;
20+
return;
21+
}
22+
23+
for (int col = 0; col < n; col++) {
24+
if (colSet.contains(col)
25+
|| posDiagSet.contains(row + col)
26+
|| negDiagSet.contains(row - col)) {
27+
continue;
28+
}
29+
colSet.add(col);
30+
posDiagSet.add(row + col);
31+
negDiagSet.add(row - col);
32+
backtrack(row + 1, n, colSet, posDiagSet, negDiagSet);
33+
colSet.remove(col);
34+
posDiagSet.remove(row + col);
35+
negDiagSet.remove(row - col);
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)