Skip to content

Commit f361489

Browse files
authored
Create 51-N-Queens.py
1 parent cfa0df8 commit f361489

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

51-N-Queens.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution:
2+
def solveNQueens(self, n: int) -> List[List[str]]:
3+
col = set()
4+
posDiag = set() # (r + c)
5+
negDiag = set() # (r - c)
6+
7+
res = []
8+
board = [["."] * n for i in range(n)]
9+
def backtrack(r):
10+
if r == n:
11+
copy = ["".join(row) for row in board]
12+
res.append(copy)
13+
return
14+
15+
for c in range(n):
16+
if c in col or (r + c) in posDiag or (r - c) in negDiag:
17+
continue
18+
19+
col.add(c)
20+
posDiag.add(r + c)
21+
negDiag.add(r - c)
22+
board[r][c] = "Q"
23+
24+
backtrack(r + 1)
25+
26+
col.remove(c)
27+
posDiag.remove(r + c)
28+
negDiag.remove(r - c)
29+
board[r][c] = "."
30+
backtrack(0)
31+
return res

0 commit comments

Comments
 (0)