class Solution:
def solveNQueens(self, n):
res = []
self.queen(res, [0 for _ in range(n)], n)
return res
def queen(self, result, board, n, row=0):
if row >= n:
plan = []
for row, col in enumerate(board[::]):
plan.append("." * col + "Q" + "." * (n - 1 - col))
result.append(plan)
else:
for col in range(n):
for i in range(row):
x, y = i - row, board[i] - col
if y == 0 or x == y or x == -y:
break
else:
board[row] = col
self.queen(result, board, n, row + 1)
京公网安备 11010502036488号