这一题跟1一样,比1简单一点,只需要个数就可以了
class Solution(object):
def totalNQueens(self, n):
"""
:type n: int
:rtype: int
"""
board = [['.' for i in range(n)] for j in range(n)]
res = [0]
self.dfs(board, 0, res)
return res[0]
def dfs(self, board, curcol, res):
if curcol == len(board):
res[0] += 1
for i in range(len(board)):
if self.check(i, curcol, board):
board[i][curcol] = 'Q'
self.dfs(board, curcol+1, res)
board[i][curcol] = '.'
def check(self, x, y, board):
for i in range(len(board)):
for j in range(y):
if board[i][j] == 'Q' and ((x+j == y+i) or (x+y == i+j) or (x == i)):
return False
return True