52.N皇后
项目场景:
n 皇后问题 研究的是如何将 n
个皇后放置在 n × n
的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n
,返回 n 皇后问题 不同的解决方案的数量。
示例 1:
输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。
示例 2:
输入:n = 1 输出:1
提示:
1 <= n <= 9
问题描述
这题整体上同第五十一题,不同的地方是只需返回不同方案的数量,在r等于n时,将ans加一即可,注意ans为全局变量,并且不需标记皇后在每一行对应的列位置。
class Solution:def totalNQueens(self, n: int) -> int:ans=0col=[False]*ndiag1=[False]*(n*2-1)diag2=[False]*(n*2-1)def dfs(r:int)->None:if r==n:nonlocal ansans+=1return 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]=Truedfs(r+1)col[c]=diag1[r+c]=diag2[r-c]=Falsedfs(0)return ans
本题提交情况。
以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!