n 皇后问题 研究的是如何将 n
个皇后放置在 n × n
的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n
,返回 n 皇后问题 不同的解决方案的数量。
class Solution: def totalNQueens(self, n: int) -> int: ans = 0 col = [False] * n diag1 = [False] * (n * 2 - 1) diag2 = [False] * (n * 2 - 1) def dfs(r: int) -> None: if r == n: nonlocal ans ans += 1 # 找到一个合法方案 return for c, ok in enumerate(col): if not ok and not diag1[r + c] and not diag2[r - c]: col[c] = diag1[r + c] = diag2[r - c] = True dfs(r + 1) col[c] = diag1[r + c] = diag2[r - c] = False # 恢复现场 dfs(0) return ans
标签:diag2,False,ans,52,II,diag1,20241202,皇后,col From: https://www.cnblogs.com/xxlm/p/18582941